我正在编写一个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)将文本写入文件但是我不能这样做,我已经得到了输入以这种形式提交。
或者首先应该以另一种方式将此文件读取和写入磁盘 - 然后重新打开以进行酸洗?
感谢。
答案 0 :(得分:0)
Pickle文件不是文本文件。它们包含Python对象定义(可能包含unicode
个文本对象或str
字节字符串。)
以二进制模式打开文件并加载:
with open('file.txt', 'rb') as morphcache:
morphology = pickle.load(morphcache)