我必须将som数据导入到我的Yahoo Marketing帐户中-并且CSV文件必须编码为- yahoo: CSV/TSV文件: Unicode (技术上为UTF-16LE编码)
writer = csv.writer(open('new_yahoo.csv','w', encoding='utf-16-le'), delimiter="\t")
writer.writerows(reader)发布于 2011-06-27 22:05:21
如果您向下滚动Python CSV page中提供的示例,您会发现它
csv模块不直接支持读写Unicode,但它是8位的,除了ASCII字符的一些问题。因此,只要避免像UTF-16这样使用NULs的编码,您就可以编写函数或类来为您处理编码和解码。建议使用UTF-8。
但是,如果您确实需要使用unicode,这看起来可能会有所帮助:
下面的
unicode_csv_reader()是一个生成器,它包装csv.reader以处理Unicode CSV数据( Unicode字符串列表)。
..。
对于所有其他编码,可以使用以下UnicodeReader和UnicodeWriter类。它们在构造函数中使用额外的编码参数,并确保数据通过以UTF-8编码的实际读取器或写入器:
因此,看起来他们在底部提供的示例应该可以完成您想要的编码。
发布于 2011-06-27 22:18:01
根据所使用的open命令判断,您使用的是Python3.x。尽管您可能还需要定义newline参数,但是您所拥有的应该是有效的。newline=''将使用原生行尾(例如,Windows上的CRLF),但雅虎可能有其他要求。下面的代码在Windows上正确生成了带有CRLF行结尾的文件。
data = [
['One','Two','Three'],
[1,2,3],
[4,5,6],
[7,8,9]]
import csv
f = open('new_yahoo.csv','w', newline='', encoding='utf-16-le')
writer = csv.writer(f, delimiter='\t')
writer.writerows(data)
f.close()https://stackoverflow.com/questions/6493876
复制相似问题