我有一个包含强调字符的CSV文件。我在使用PyCharm和Sublime打开编码时检查了编码,这是西方的:Windows 1252或ISO-8859-1。
我从此CSV创建一个熊猫数据框,然后对其进行修改,并将其导出到UTF-8文本文件。我用PyCharm和Sublime Text检查了导出的文件,不知道为什么导出的文件不在UTF-8中。
这是我的代码:
dataset= pd.read_csv("my_file.csv", sep=";", encoding="ISO-8859-1")
print(dataset.loc[0, "my_col"])
>>> "s'il vous plaît"
# Export data
with open("out.txt"), "w", newline='') as f:
dataset.to_csv(path_or_buf=f, sep="\t", header=False, index=False, encoding="utf-8")
使用PyCharm打开“ out.txt”时,它显示s'il vous pla�t
,PyCharm告诉我该文件的编码不是UTF-8。
答案 0 :(得分:2)
您正在使用默认编码以文本模式写入文件对象,这优先于输出编码,并使方法encoding
中的to_csv
参数无效。 / p>
您应该使用类似以下的内容。
# Export data
with open("out.txt", "w", newline='', encoding="utf-8") as f:
dataset.to_csv(path_or_buf=f, sep="\t", header=False, index=False)
或者没有文件对象:
# Export data
dataset.to_csv(path_or_buf="out.txt", sep="\t", header=False, index=False, encoding="utf-8")