加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – pickle和编码的问题

发布时间:2020-12-20 11:17:14 所属栏目:Python 来源:网络整理
导读:我正在使用大量的文本文件.他们中的许多人用不同的编码书写.我创建了包含这些文本文件中的一些子字符串的对象列表.打开文件时我正在处理编码问题(正确创建对象并可以使用). 这是我的清单: len(hands)47580type(hands)class 'list'type(hands[0])class '__ma
我正在使用大量的文本文件.他们中的许多人用不同的编码书写.我创建了包含这些文本文件中的一些子字符串的对象列表.打开文件时我正在处理编码问题(正确创建对象并可以使用).
这是我的清单:

len(hands)
47580
type(hands)
<class 'list'>
type(hands[0])
<class '__main__.BridgeHand'>

现在我尝试挑选这个对象:

import pickle
pickle.dump(hands,open("handspi.p","wb"))

它创建了9MB的文件handpi.
当我尝试取消它时,问题就出现了:

hh = pickle.load(open(#some path to this pickle file))

堆栈跟踪结束于:

File "C:Python31libencodingscp1252.py",line 23,in decode
return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x81 in position 30: character maps to      <undefined>

我该怎么办?
感谢帮助 :)

解决方法

您可能希望尝试以二进制模式打开文件,因为您当前正在将其作为ascii文件读取.

open('picklefile.pkl','rb')

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读