CSV文件处理

#csv文件:使用纯文本来存储表格数据 并以分隔符进行分隔
#1.导入模块 import csv
#2.打开文件 创建csv对象
# f=open(fname)
# csvf=csv.reader(f)
#3.for row in csvf: print(row)
#4.关闭文件 f.close()
# import csv
# fname=r'wwwq/csv'
# f=open(fname)
# csv.reader =csv.reader(f)
# for row in csv.reader:
# print(row)
# #csv文件写入
#按行写入
import csv
fwpath=r'D:\Python学习\day1\t1.csv'
f=open(fwpath,'w')
csv_w = csv.writer(f)
line = [1,2,3,4,5]
line2 = '1,2,3,5,5'
# csv_w.writerow(line) #单行写入
csv_w.writerows(line2) #多行写入
f.close()

#字段+内容 以字典方式写入
fwpath=r'D:\Python学习\day1\t2.csv'
colname = ['year','date','name','age']
f=open(fwpath,'w')
csv_dictw=csv.DictWriter(f,fieldnames=colname)
csv_dictw.writeheader()
line = dict(zip(colname,['2020','212','sun',19]))
csv_dictw.writerow(line)
f.close()

#数据量大csv文件处理
fwpath=r'D:\Python学习\day1\t2.csv'
f=open(fwpath)
csv_reader = csv.DictReader(f)
data=[]
for line in csv_reader:
data.append(line)
print(data) #[OrderedDict([('year', '2020'), ('date', '212'), ('name', 'sun'), ('age', '19')])]
print(len(data))

#找2017年有多少个地区
regin_2017=[item.get('regin') for item in data if item.get('year') == '2017']

#各个地区按照2017年按出生率排序
#找出2017的数据
data_2017= [item for item in data if item.get('year') == '2017']
def func(item):
return float(item.get('birth_rate'))
data_2017.sort(key=func,reverse=True)

#2017年平均出生率 增长率 死亡率
birth_data= [float(item.get('birth_rate',0)for item in data_2017)]
round(sum(birth_data)/len(birth_data),2)
posted @ 2022-05-25 08:05  人生信条~~  阅读(191)  评论(0编辑  收藏  举报