【问题标题】:python 3 how to write utf-8 using csv writerpython 3 如何使用 csv writer 编写 utf-8
【发布时间】:2018-11-06 01:58:35
【问题描述】:

我在尝试写入 csv 文件时遇到了这个问题:

from csv import writer

str1 = "idzie wąż wąską dróżką"
str2 = "мир и любовь"

csv_file = open("myFile.csv", "a", newline="", encoding="utf-8")

writer_Obj = writer(csv_file,  delimiter=';')    

writer_Obj.writerow([str1, str2])

这是文件中的结果:

idzie wąż wąską dróżką
мир и любовь

【问题讨论】:

  • 你如何显示文件?如果在 Windows 上,某些编辑器假定使用本地编码而不是 UTF-8,除非在文件开头写入 BOM 签名。请改用encoding='utf-8-sig'
  • 确保在切换到 encoding='utf-8-sig' 之前删除现有文件,因为您使用附加打开,所以您必须从一个新文件开始。
  • 我在 Linux (python 3.6.5) 中运行了您的脚本,它按预期工作。您的脚本是否保存为 uft-8?
  • @gbajson 是的,问题是当我用 excel 打开 csv 文件时,它不在 utf-8 中,但我通过使用 excel 及其工作将 csv 文件导出到 xls 来解决 il

标签: python-3.x csv utf-8 writer


【解决方案1】:

我已经解决了我的问题,这是因为 csv 不支持 utf-8 这里是一个替代方案:

www.itg.ias.edu/content/how-import-csv-file-uses-utf-8-character-encoding-0

【讨论】:

  • 我不会将其描述为“csv 不支持 utf-8”。 csv 文件是专门的文本文件。所有文本文件都使用字符编码。必须告诉读取文本文件的程序是哪个。当程序猜测时,会出现期望问题。链接的文章描述了如何使用 Excel 读取任何文本文件。而且,在 csv 的情况下,如何告诉它必须与 csv 文件一起提供的所有其他元数据,包括字段分隔符和列数据类型。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-01-17
  • 2023-03-27
  • 2021-02-07
  • 2018-10-02
  • 2018-06-13
  • 2014-07-01
  • 1970-01-01
相关资源
最近更新 更多