- 使用Python读取和写入CSV文件
-
python中本身就自带csv模块,
参考在线手册:
http://docs.python.org/2/library/csv.html
1.用python读取csv文件:csv是逗号分隔符格式 一般我们用的execl生成的格式是xls和xlsx 直接重命名为csv的话会报错:Error: line contains NULL byteinsun解决方案:出错原因是直接是把后缀为xls的execl文件重命名为csv的 正常的要是另存为csv文件 就不会报错了譬如我们有这么个csv文件:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import csv with open('egg.csv','rb') as f:
reader = csv.reader(f)
for row in reader:
print row['a', '1', '1', '1']['a', '2', '2', '2']['b', '3', '3', '3']['b', '4', '4', '4']['b', '5', '5', '5']['b', '6', '6', '6']['c', '7', '7', '7']['c', '8', '8', '8']['c', '9', '9', '9']['c', '10', '10', '10']['d', '11', '11', '11']['e', '12', '12', '12']['e', '13', '13', '13']['e', '14', '14', '14']2.用python写入并生成csv#!/usr/bin/env python
# -*- coding:utf-8 -*-imp
ort csv with open('egg2.csv', 'wb') as csvfile:
spamwriter = csv.writer(csvfile, delimiter=' ',
quotechar='|', quoting=csv.QUOTE_MINIMAL)
spamwriter.writerow(['a', '1', '1', '2', '2'])
spamwriter.writerow(['b', '3', '3', '6', '4'])
spamwriter.writerow(['c', '7', '7', '10', '4'])
spamwriter.writerow(['d', '11','11','11', '1'])
spamwriter.writerow(['e', '12','12','14', '3'])
这样存进去的是存到一列了 跟我们原本意图存进5列不一样使用python的csv生成excel所兼容的csv文件的话,主要就是创建writer时的参数时要有dialect=’excel’#!/usr/bin/env python
# -*- coding:utf-8 -*-
imp
ort csv with open('egg2.csv', 'wb') as csvfile:
spamwriter = csv.writer(csvfile,dialect='excel')
spamwriter.writerow(['a', '1', '1', '2', '2'])
spamwriter.writerow(['b', '3', '3', '6', '4'])
spamwriter.writerow(['c', '7', '7', '10', '4'])
spamwriter.writerow(['d', '11','11','11', '1'])
spamwriter.writerow(['e', '12','12','14', '3'])
这回符合我们要求了。3.实战:http://zhidao.baidu.com/question/529653801.html?push=1&group=1 -