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

时间:2017-07-11 07:47:23

标签: python excel csv encoding spss

在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中打开它只是它的一个用途。

2 个答案:

答案 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