[英]UnicodeDecodeError when trying to save an Excel File with Python xlwt
[英]UnicodeDecodeError: save to file in python
我想讀取文件,在其中找到某些內容並保存結果,但是當我要保存文件時,它給我一個錯誤
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 19: ordinal not in range(128)
保存到文件的代碼:
fileout.write((key + ';' + nameDict[key]+ ';'+src + alt +'\\n').decode('utf-8'))
我該如何解決?
謝謝
您試圖將unicode值與字節字符串連接起來,然后將結果轉換為unicode,以將其寫入最有可能僅使用字節字符串的文件對象中。
不要像這樣混合unicode和字節字符串 。
使用io.open()
打開要寫入的文件以自動編碼Unicode值,然后僅處理代碼中的unicode:
import io
with io.open(filename, 'w', encoding='utf8') as fileout:
# code gathering stuff from BeautifulSoup
fileout.write(u'{};{};{}{}\n'.format(key, nameDict[key], src, alt)
您可能需要檢出csv
模塊以處理寫出以定界符分隔的值。 如果您遵循這種方法,則必須對列進行顯式編碼:
import csv
with open(filename, 'wb') as fileout:
writer = csv.writer(fileout, delimiter=';')
# code gathering stuff from BeautifulSoup
row = [key, nameDict[key], src + alt]
writer.writerow([c.encode('utf8') for c in row])
如果其中一些數據來自其他文件,請確保還先解碼為Unicode。 同樣, io.open()
讀取這些文件可能是最好的選擇,以便在讀取時將數據解碼為Unicode值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.