今天主要学习了Python关于CSV文件的一些读写处理操作,现在在这里整理一下。
数据读取:
1. 普通方法
import csv
f_1 = open(r'C:\Users\S5 war\Desktop\pythonlianxi\c11.csv') #打开文件
reader = csv.reader(f_1) #读入
print(list(reader)) #打印每行内容,会将CSV中的每一行变为列表
f_1.close()
2. with方法
file = r'C:\Users\S5 war\Desktop\pythonlianxi\c11.csv'
with open(file,'r') as f_2:
reader = csv.reader(f_2)
data_list = list(reader)
print(data_list[1][1]) #返回单个元素的值
print(data_list[2][1])
3. 字典方法
import csv
file = (r'C:\Users\S5 war\Desktop\pythonlianxi\c11.csv')
with open(file) as f_4:
reader = csv.DictReader(f_4)
for row in reader:
print(row)
# print(row['age']) #通过标签,单独读取一列
数据写入:
1. 普通方法
import csv
datas = [['name','age'], #为列表类型
['张三',29],
['李四',43],
['王五',18]]
file = (r'C:\Users\S5 war\Desktop\pythonlianxi\c11.csv')
with open(file,'w',newline='') as f_3:
writer = csv.writer(f_3)
for row in datas: #遍历列表的列表
writer.writerow(row)
2. 字典方法
import csv
headers = ['name','age'] #定义头部
datas = [{'name':'张三','age':29}, #列表的形式,但是里面的每个元素都是字典的形式
{'name':'李四','age':43},
{'name':'王五','age':18}]
file = (r'C:\Users\S5 war\Desktop\pythonlianxi\test_c11.3.csv')
with open(file,'w', newline='') as f_5:
#标题在这里传入,作为第一行数据
writer = csv.DictWriter(f_5,headers)
writer.writeheader()
#写入的两种方式
for row in datas:
writer.writerow(row) #每次只写一行,故需要遍历每一行
# writer.writerows(datas) #一次性写入所有