1. 写入并生成csv文件
代码:
# coding: utf-8
import csv
csvfile = file('csv_test.csv', 'wb')
writer = csv.writer(csvfile)
writer.writerow(['姓名', '年龄', '电话'])
data = [
('小河', '25', '1234567'),
('小芳', '18', '789456')
]
writer.writerows(data)
csvfile.close()
- wb中的w表示写入模式,b是文件模式
- 写入一行用writerow
- 多行用writerows
2. 读取csv文件
代码:
# coding: utf-8
import csv
csvfile = file('csv_test.csv', 'rb')
reader = csv.reader(csvfile)
for line in reader:
print line
csvfile.close()
运行结果:
root@he-desktop:~/python/example# python read_csv.py
['\xe5\xa7\x93\xe5\x90\x8d', '\xe5\xb9\xb4\xe9\xbe\x84', '\xe7\x94\xb5\xe8\xaf\x9d']
['\xe5\xb0\x8f\xe6\xb2\xb3', '25', '1234567']
['\xe5\xb0\x8f\xe8\x8a\xb3', '18', '789456']
3、中文乱码问题解决方法:
import codecs
with open('result.csv', 'w') as f:
f.write(codecs.BOM_UTF8)
writer = csv.writer(f)
writer.writerow(['用户邮箱地址{EAddr}','用户真实姓名{UserName}','用户昵称{NickName}',
'用户称呼(先生,女士){Gender}','用户生日{Birthday}','用户电话{Mobile}'])
增加 import codecs和f.write(codecs.BOM_UTF8)两行
4、读取excel文件出错
_csv.Error: new-line character seen in unquoted field - do you need to open the file in universal-newline mode?
解决办法:
reader = csv.reader(open("data.csv", 'rU'), dialect='excel')
参考:Python CSV文件处理/读写及With as 用法 - youxin - 博客园
python读写excel参考:Python中xlrd和xlwt模块使用方法 - 锅边糊 - 博客园