请根据如下内容,自行在本地建立这两个文件: covid1.txt和covid2.txt, 包含了多个国家近期新冠肺炎疫情数据,分别代表地区/新增/现有/累计/治愈/死亡等六项信息。
- covid1.txt内容如下:
美国,21692,155537,164603,5896,3170 意大利,4050,75528,101739,14620,11591 西班牙,9222,69448,94417,16780,8189 德国,4349,49940,67788,17200,648 法国,4376,34176,45170,7964,3030
- covid2.txt内容如下:
-
伊朗,3111,27052,44606,14656,2898 英国,2619,20872,22454,171,1411 韩国,125,4216,9786,5408,162 日本,137,1641,2124,424,59
(1) 追加covid2.txt文件内容到covid1.txt文件,并输出最终的covid1.txt内容
txt_covid1 = open("D:/Desktop/covid1.txt","a+",encoding="utf-8") #打开txt_covid2,将指针定位到文件尾,文件的路径用自己的,下面的同理
txt_covid2 = open("D:/Desktop/covid2.txt","r+",encoding="utf-8") #打开txt_covid2,将指针定位到文件首
txt_covid1.write('\n') #预先给txt_covid1回车换行,便于下一步整整齐齐的导入数据
for line in txt_covid2:
txt_covid1.writelines(line) #遍历txt_covid2的每一行并插入到txt_covid1的后面
txt_covid1.close()
txt_covid2.close() #关闭文档
txt_covid10 = open("D:/Desktop/covid1.txt","r",encoding="utf-8") #以只读模式打开txt_covid1,将指针定位到文件首
del line #怕之前的line搞出什么问题来(不是这段代码上的line)(虽然也不一定出问题,但还是写了),单独运行就不需要这行
for line in txt_covid10:
print(line)
txt_covid10.close()
#千万千万在打开文件时指定好指针位置,不然最后看着记事本里运行了但又没完全运行的结果,错都不知道错在哪里
(2)将covid1.txt的内容采用逗号分隔的形式存入covid.csv文件,文件第一行为地区/新增/现有/累计/治愈/死亡六个维度,剩下每行代表一个地区的疫情信息。
import csv
with open("D:\Desktop\covid.csv","r+",encoding="utf-8",newline="") as data: #covid.csv此时是一个预先建好的.csv,utf-8编码的空文档,newline=""的用处是防止运行结果出现空白行
attribute = ['地区','新增','现有','累计','治愈','死亡']
writer = csv.writer(data)
writer.writerow(attribute) #写入属性行
txt_covid1=open("D:\Desktop\covid1.txt","r+",encoding="utf-8")
for line in txt_covid1.readlines():
line=line.split(',') #遇到逗号就分隔
writer.writerow(line) #写入将每一行的数据
data.close()
txt_covid1.close()
(3) 除了csv文件,还可以将数据以表格的形式保存在covid.xls文件中,该表格包括地区/新增/现有/累计/治愈/死亡等六列,每行代表一个国家疫情信息。
import xlwt
covid = xlwt.Workbook(encoding = "utf-8") #新建工作区
covid_sheet = covid.add_sheet("sheet 1",cell_overwrite_ok = True) #新建工作表
attribute = ("地区","新增","现有","累计","治愈","死亡")
for i, col in enumerate(attribute):
covid_sheet.write(0,i,col) #向第0行插入一组值,即属性行
covid1 = open("D:/Desktop/covid1.txt","r",encoding="utf-8")
t = 1 #预设新插入的数据所在的行
for line in covid1.readlines():
line = line.split(',') #同(2)之理
data = (line) #直接导入行
for j, row in enumerate(data):
covid_sheet.write(t,j,row) #括号中三个位置分别是行,列,和值
t += 1 #切换至下一行,准备进行下一次插入
covid.save("D:/Desktop/covid.xls") #保存文件
covid1.close()
这样上传一下云端,顺便分享一波,还望指教。
另外,以上均不保证完全正确,但都是可以运行出正确结果的,至于细节嘛,有待查察。
版权声明:本文为weixin_61864411原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。