读写csv文件用到的函数reader、writer;类DictReader、DictWriter
1.reader方法的使用
查看reader方法的帮助说明
>>> help(csv.reader)
Help on built-in function reader in module _csv:
reader(...)
csv_reader = reader(iterable [, dialect='excel']
[optional keyword args])
for row in csv_reader:
process(row)
csv文件上的数据:
import csv
reader = csv.reader(file('data.csv','rb')
for line in reader
print line
打印出来的结果是数组类型,有文件中几行数据就打印几个数组,不区分表头和值
输出结果:
2.writer方法的使用
查看help说明
>>> help(csv.writer)
Help on built-in function writer in module _csv:
writer(...)
csv_writer = csv.writer(fileobj [, dialect='excel']
[optional keyword args])
for row in sequence:
csv_writer.writerow(row)
[or]
csv_writer = csv.writer(fileobj [, dialect='excel']
[optional keyword args])
csv_writer.writerows(rows)
The "fileobj" argument can be any object that supports the file API.
writer的使用:
import csv
writer = csv.writer(file('data.csv','wb'))
writer.writerow(['Column1','Column2','Column3']) #写入csv文件的表头
lines = [range(3) for i in range(5)] #[[0,1,2],[0,1,2],[0,1,2],[0,1,2],[0,1,2]]
writer.writerows(lines) #同时写入多行信息
或:
for line in lines:
writer.writerow(line) #一次写入一行信息
csv文件上查看写入结果:
3.DictReader类的使用
csv文件的数据如下:
import csv
reader = csv.DictReader(file('data.csv','rb'))
for line in reader
print line
打印出来的数据是字典类型,表格的表头为键、每一行的值为值,值有几行就打印几个字典
4.DictWriter类的使用
import csv
rows = [{'Column1': '0', 'Column2': '1', 'Column3': '2', 'Column4': '3'},
{'Column1': '0', 'Column2': '1', 'Column3': '2', 'Column4': '3'},
{'Column1': '0', 'Column2': '1', 'Column3': '2', 'Column4': '3'},
{'Column1': '0', 'Column2': '1', 'Column3': '2', 'Column4': '3'},
{'Column1': '0', 'Column2': '1', 'Column3': '2', 'Column4': '3'}]
fieldnames = ['Column1','Column2','Column3','Column4'] #定义表头字段
cr = csv.DictWriter(file('data.csv','wb'),fieldnames = fieldnames)
cr.writeheader() #将表头名称写入csv文件
cr.writerows(rows) #将要写入的数据一次性写入到文件,也可以使用cr.writerow()一次写入一行