您的位置:首页 > 编程语言 > Python开发

Python读写csv文件

2016-11-03 17:50 477 查看
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')
参考:https://www.cnblogs.com/youxin/p/3153947.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: