[英]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.