【问题标题】:python 2.6 cPickle.load results in EOFErrorpython 2.6 cPickle.load 导致 EOFError
【发布时间】:2010-02-02 20:46:03
【问题描述】:

我使用 cPickle 来腌制一个整数列表,使用 HIGHEST_PROTOCOL,

cPickle.dump(l, f, HIGHEST_PROTOCOL)

当我尝试使用以下代码取消腌制时,我收到 EOFError。我尝试在 unpickling 之前“寻求”偏移 0,但错误仍然存​​在。

l = cPickle.load(f)

有什么想法吗?

【问题讨论】:

  • 我刚刚注意到我没有以二进制模式写入/读取文件。希望这能解决这个问题。
  • 很明显,我在输入答案时向您投射了这个想法:p
  • 是的,这完全有可能:-)

标签: python pickle eoferror


【解决方案1】:

如果你在 Windows 上,请确保你

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

【讨论】:

  • 谢谢,7 年后,这仍然很有帮助!。帮了我很多;)
  • 同意。刚刚也救了我。