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

SPSS-Python write to CSV - wrong encoding when opening in 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.

我的练习数组中有一些西班牙语文本,例如 "reparación"。如果我在文本编辑器中打开输出文件,一切看起来都很好。但是,如果我在 Excel 2016 年打开它,它看起来像这样:"reparación"。我需要转到 Data/Import From text" 并 手动 选择 UTF 编码,但这不是我 SPSS 程序的未来用户的选项。

有没有什么方法可以写入文件,以便 Excel 使用 UTF-8 编码打开它? 它必须是一个 csv 文件 - 在 excel 中打开它只是它的一种用途。

codecs.open(DimFile, "w",encoding='utf8') 明确要求使用 utf8 编码,后来又说你不想使用 utf8。直接使用期望的编码即可:

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

(cp1252 是 Windows 上西班牙语的通用编码)

虽然 Serge Ballesta 的回答非常适合西班牙语,但我发现 encoding='utf-8-sig' 最适合我测试的所有字符。我觉得应该使用 UTF-8,因为它比其他建议的编码更常见。

归功于本主题: Write to UTF-8 file in Python