请根据如下内容,自行在本地建立这两个文件: 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 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>