我正在尝试用双点(变音符号)来写字符,例如ä,ö和Ö。我可以使用data.encode("utf-8")
将其写入文件,但结果b'\xc3\xa4\xc3\xa4\xc3\x96'
不好(UTF-8作为文字字符)。我希望将"ääÖ"
写入存储到文件中。
如何使用变音字符将数据写入Python 3中的CSV文件?
import csv
data="ääÖ"
with open("test.csv", "w") as fp:
a = csv.writer(fp, delimiter=";")
data=resultFile
a.writerows(data)
回溯:
File "<ipython-input-280-73b1f615929e>", line 5, in <module>
a.writerows(data)
UnicodeEncodeError: 'ascii' codec can't encode character '\xe4' in position 15: ordinal not in range(128)
答案 0 :(得分:3)
将参数encoding
添加到open()
并将其设置为'utf8'
。
import csv
data = "ääÖ"
with open("test.csv", 'w', encoding='utf8') as fp:
a = csv.writer(fp, delimiter=";")
a.writerows(data)
修改:删除io
库的使用,因为open
与Python 3中的io.open
相同。
答案 1 :(得分:-1)
这个解决方案应该适用于python2和3(在python3中不需要):
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import csv
data="ääÖ"
with open("test.csv", "w") as fp:
a = csv.writer(fp, delimiter=";")
a.writerows(data)