簡體   English   中英

在Python2中用pickle加載utf-8文件

[英]Loading utf-8 file with pickle in Python2

我正在用Python編寫腳本,該腳本可在OSX(10.6)上使用Python 2.7。 我的命令是:

    morphcache = codecs.open('file.txt','r','utf-8')
    morphology = pickle.load(morphcache)
    morphcache.close()

它使用另一個站點生成的文本文件(utf-8),其中包含換行符和č,š,ž等字符。

由於它使用轉義字符,因此會報告此錯誤:

Traceback (most recent call last):   File "createxml.py", line 38, in <module>
morphology = pickle.load(morphcache)   File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pickle.py", line 1378, in load
return Unpickler(file).load()   File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pickle.py", line 858, in load
dispatch[key](self) KeyError: 'sV\xc5\xbedeti\np1\nSVerb,\xc5\xbedeje,\xc5\xbedeti,\xc5\xbedeti,\xc5\xbedi,\xc5\xbedijo\np2\nsV\xc5\xbeupnik\np3\nVSu' make: *** [all] Error 1

我正在尋找一種解決方案,該問題的所有解決方案都要求首先以不同的方式(而不是utf-8)將文本寫入文件,但我做不到,我已經獲得了輸入文件表單。

還是應該首先以其他方式將文件讀取並寫入磁盤-然后重新打開以進行腌制?

謝謝。

泡菜文件不是文本文件。 它們包含Python對象定義(可以包括unicode文本對象或str字節字符串)。

以二進制模式打開文件並加載:

with open('file.txt', 'rb') as morphcache:
    morphology = pickle.load(morphcache)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM