在SPSS中,使用python,我将列表列表写入csv文件:
begin program.
import spss,spssaux, sys, csv, codecs
def WriteDim():
MyArray=[some list of lists]
for MyVar in MyFile.varlist:
MyArray.append([MyVar.name,MyVar.label])
DimFile="DimCSV.csv"
with codecs.open(DimFile, "w",encoding='utf8') as output:
writer = csv.writer(output, lineterminator='\n')
writer.writerows(MyArray)
end program.
我的练习数组中有一些西班牙语文本,例如"reparación"
。如果我在文本编辑器中打开输出文件,一切看起来都很好。但是,如果我在Excel 2016中打开它,它看起来像这样:"reparación"
。我需要转到数据/导入文本“和手动选择UTF编码,但这不是我SPSS程序的未来用户的选项。
有没有办法编写文件,以便Excel使用UTF-8编码打开它? 它必须是一个csv文件 - 在excel中打开它只是它的一个用途。
答案 0 :(得分:1)
你明确要求codecs.open(DimFile, "w",encoding='utf8')
进行utf8编码,之后再说你不会使用utf8。只需直接使用预期的编码:
with codecs.open(DimFile, "w",encoding='cp1252') as output:
(cp1252是Windows上西班牙语的常用编码)
答案 1 :(得分:0)
虽然Serge Ballesta的回答完全适用于西班牙语,但我发现encoding='utf-8-sig'
最适合我测试的所有角色。我觉得应该使用UTF-8,因为它比其他建议的编码更常见。
相信这个话题: Write to UTF-8 file in Python