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