Python 2.6 中cPickle.load导致EOFError错误

11

我使用cPickle将一个整数列表进行序列化,使用最高协议(HIGHEST_PROTOCOL)。

cPickle.dump(l, f, HIGHEST_PROTOCOL)
当我尝试使用下面的代码对其进行反序列化时,我会得到一个EOFError错误。我已经尝试在反序列化之前将偏移量"seek"到0,但错误仍然存在。
l = cPickle.load(f)

有什么想法吗?


我刚刚注意到我没有以二进制模式写入/读取文件。希望这样能解决这个问题。 - fsm
当我输入我的答案时,显然我把那个想法传达给了你 :p - John La Rooy
是的,这完全可以做到 :-) - fsm
1个回答

20

如果您使用的是Windows,请确保您

open(filename, 'wb') # for writing
open(filename, 'rb') # for reading

谢谢,7年后,这仍然很有帮助!对我帮助很大 ;) - Hossein
同意,也救了我。 - jbee

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接