[英]Encoding/Decoding Unicode and Writing CSV
我正在尝试将非拉丁语言的单词写到CSV,但是无法以正确的形式写出单词。
foreign='а также'
with open('C:\\Users\\Lance\\Desktop\\Programs\\Database Builder\\Russian Test.csv', 'wb') as outfile:
outfile.write((foreign).encode('utf-8'))
此代码的输出是:
атак涵µ
谢谢!
它可以正确写入文件,但是您可能正在使用使用Windows-1252
编码的编辑器或控制台来显示文件。
来自美国Windows cmd.exe控制台的示例:
C:\>type "Russian Test.csv"
а также
C:\>chcp 1252
Active code page: 1252
C:\>type "Russian Test.csv"
а также
C:\>chcp 65001
Active code page: 65001
C:\>type "Russian Test.csv"
а также
注意:代码页65001在Windows上是UTF-8编码。
由于您似乎正在使用Python 3,因此应该改而直接写Unicode字符串:
foreign='а также'
with open('Russian Test.csv', 'w', encoding='utf8') as outfile:
outfile.write(foreign)
首次安装unicodecsv
pip install unicodecsv
然后将其导入您的脚本中
import unicodecsv as csv
为我工作。
首先,将数据写入csv文件取决于csv库,正确的脚本应为:
import csv
with open('path/to/test.csv', 'wb') as f:
writer = csv.writer(f)
for line in <your_data>:
writer.writerow(line)
其次,由于csv库在python 2x中不支持unicode,因此您需要使用能够很好地处理unicode的替代方法-https: //github.com/jdunck/python-unicodecsv ,您要做的就是简单地安装Unicode版本的csv库,并在第一行添加简短的导入表达式:
pip install unicodecsv
import unicodecsv as csv
...
请记住,通过在每个字符串前面添加“ u”,将所有字符串转换为unicode。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.