[英]write csv files including unicode with python 2.7
我正在使用csv
模块将包含一些非ascii字符的大列表写入csv文件中。 我不断收到以下错误消息
UnicodeEncodeError: 'ascii' codec can't encode characters in position 48-50: ordinal not in range(128)
我不需要这些字符,因此可以忽略它们。 我尝试了在SOF上推荐的其他方法,但是到目前为止,它们都没有起作用(错误消息是相同的)。 有没有一种简单的方法来解决编码错误并继续进行? 我试过了:
io.open(file, encoding = "utf-8")
codecs.open(file, encoding = "utf-8")
codes.open(file, errors = "ignore")
我可以使用pandas
模块将数据写入csv,只需设置encoding = "utf-8"
。 我可以在csv
模块中做类似的事情吗?
对于Python 2.7,您应该使用unicodecsv
模块: unicodecsv 0.9.4 。 这是Python内置的csv
模块的替代品,并且确实支持Unicode。 在Python 3.x中,您不再需要此替换,因为Python 3.x在其csv
模块中确实支持Unicode。
您可以通过运行以下命令进行安装:
pip install unicodecsv
您可以安装unicodecsv ,也可以使用csv writer
在CSV
文件中写入时以utf-8格式写入行。
import csv
with open("sample.csv", "w") as wf:
writer = csv.writer(wf)
writer.writerow([unicode(s, "utf-8") for s in row])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.