python文件读写,多行数据处理后写入新文件
题目:形成一个新的文件,保持原来的数据内容,添加一列数据,利用总量GDP和人均GDP数据,推算每个市的人口数据,到每个市最后,并计算江苏省GDP总量和江苏省人均GDP,添加到最后一行。
数据编码为UTF-8格式,数据如下:
代码如下:
import os
import codecs
os.chdir("D:\\pythonchaozuo")
f1=open("JSGDP.txt","r",encoding='UTF-8')
f2=open("result.txt","w",encoding='UTF-8')
a=f1.readlines()#读取所有行
c3=0
c4=0
for i in range(0,len(a)):
a[i]=a[i].strip()
if(i==0):#标题行添加'人口数据'
a[i]=a[i]+','+''+'人口数据'+'\n'
else:
b=a[i].split(',')
c1=round(float(b[1])/float(b[3])*10e8,2)#人口数据,网上数据显示南京市人口为约827万人,故*10^8
c2=round(float(b[1])/float(b[3]),2)#计算人口数据,保留2位小数
c3=c3+c2#计算总人口
c4=c4+float(b[1])#计算总GDP
a[i]=a[i]+','+''+str(c1)+'\n'#添加人口数据到每行
f2.writelines(a)#将含人口数据的a列表写入result.txt
total_GDP=round(c4,2)#总GDP保留两位小数
average_GDP=round(c4/c3,2)#计算平均GDP,并保留两位小数
d=[]
d='总GDP:'+str(total_GDP)+','+''+'人均GDP:'+str(average_GDP)+'\n'
f2.writelines(d)
f1.close()
f2.close()
with open("result.txt","r",encoding='UTF-8') as f3:
content=f3.read()
print(content)