SPSS-Python写入CSV – 在Excel中打开时错误的编码

在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. 

我在练习中有一些西class牙文字,例如"reparación" 。 如果我在文本编辑器中打开输出文件,一切看起来都不错。 但是,如果我在Excel 2016中打开它,它看起来像这样: "reparación" 。 我需要去数据/从文本导入“,并手动selectUTF编码,但这不是我的SPSS程序的未来用户的选项。

有没有办法编写文件,以便Excel将打开它使用UTF-8编码? 它必须是一个CSV文件 – 在Excel中打开它只是它的一个用法。

明确地要求codecs.open(DimFile, "w",encoding='utf8') ,后来说你会不要使用utf8。 只需直接使用预期的编码:

 with codecs.open(DimFile, "w",encoding='cp1252') as output: 

(cp1252是Windows上西class牙文的常用编码)

尽pipeSerge Ballesta的回答对西class牙语来说是完美的,但是我发现encoding='utf-8-sig'对于我testing过的所有angular色都是最好的。 我觉得应该使用UTF-8,因为它比其他build议的编码更普遍。

感谢这个话题: 用Python编写UTF-8文件