2011-06-27 111 views
3

我必须将som数据导入到我的Yahoo Marketing帐户 - 并且CSV文件必须在 - yahoo:CSV/TSV文件中进行编码:Unicode(技术上的UTF-16LE编码)Python - 将CSV文件保存为UTF-16LE

writer = csv.writer(open('new_yahoo.csv','w', encoding='utf-16-le'), delimiter="\t") 
writer.writerows(reader) 
+0

这是不是一个真正的问题...我回答什么,我想你想(可以将其与Python的csv.writer做),但你真的需要你想要什么解释。 – thegrinner

回答

0

如果您在Python的CSV page提供的例子向下滚动,你会发现它

csv模块不支持直接读写Unicode的,但它是8-对于ASCII NUL字符的某些问题,可以进行清零保存。因此,只要避免使用NUL的UTF-16编码,就可以编写处理编码和解码的函数或类。建议使用UTF-8。

但是,如果你需要做unicode的,它看起来像这可能帮助:

unicode_csv_reader()下面是一个封装csv.reader来处理Unicode CSV数据(Unicode的一个列表发电机字符串)。

...

对于所有其他编码以下UnicodeReader和UnicodeWriter类可以使用。他们采取在其构造额外的编码参数,并确保数据通过编码为UTF-8的真正的读者或作者:

所以看起来它们在底部应该做你想要的编码提供范例。

0

看起来你正在使用Python 3.X,通过使用open命令来判断。你有什么应该工作,尽管你也可能需要定义newline参数。 newline=''将使用本地行结尾(例如Windows上的CRLF),但雅虎可能有其他要求。下面的代码使用CRLF行结束符在Windows上正确生成文件。

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()