声明:此文章仅供个人工作学习时复习查看,可能对其他人并无用处,望见谅
关于python对于csv文件的操作,其内置的csv模块提供了有效便捷的操作方法。
1. 首先是普通的读写方式
1. 读取文件csv.reader(csvfile, dialect='excel', **fmtparams)
# 读取csv文件
import csv
with open('test_.csv', 'r') as f:
reader = csv.reader(f)
for row in reader:
print(row[0]) #输出每行记录的编号
2. 写入文件csv.writer(csvfile, dialect='excel', **fmtparams)
# 读取csv文件
import csv
with open('test_.csv', 'w', newline='') as f: #不设置newline,写入的每一行数据后面都有一个空行
# 如果是以二进制的形式写入不存在空行问题
writer = csv.writer(f)
names = ['lea', 'tom', 'lucy', 'troye']
writer.writerow(['number', 'name']) # csv文件的每一行以列表的形式传入
for number in range(1, 5):
writer.writerow([number, names[number-1]])
# 或者可以多行同时写入
data = [[1, 'lea'],
[2, 'rom'],
[3, 'lucy'],
[4, 'troye'],
]
writer.writerows
2. 其次是字典形式的读写方式
1.读取文件 csv.DictReader('filename')
>>> import csv
>>> with open('test_.csv') as f:
... reader = csv.DictReader(f)
... for row in reader:
... print(row['name'])
...
lea
tom
......
2.写入文件 csv.DictWriter('filename', fieldnames=fieldnames)
import csv
with open('test_.csv', 'w') as f:
headers = ['number', 'name']
writer = csv.DictWriter(f, headers)
writer.writeheader()
names = ['lea', 'tom', 'lucy', 'troye']
for number in range(1, 5):
writer.writerow({'number':number, 'name':names[number-1]})
# 同样的,可以将多条数据用列表打包后同时传入
data = [{'number': 5, 'name':'lea'},
{'number': 6, 'name':'tom'},
{'number': 7, 'name':'lucy'},
{'number': 8, 'name':'troye'},
]
writer.writerows(data)
先到这里,以后碰到有用的部分再添加更新