2

一个朋友为我生成了一个泡菜文件。因为他在 python 3 上工作,而我在 python 2 上工作,所以他生成了文件

pickle.dump(some_file_to_be_pickled,open("path_to_that_file","wb+"),protocol=2)

当我尝试加载它时

the_file = pickle.load(open("path_to_that_file","rb"))

但是,我遇到了 EOFError,它看起来像:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib64/python2.7/pickle.py", line 1378, in load
   return Unpickler(file).load()
File "/usr/lib64/python2.7/pickle.py", line 858, in load
   dispatch[key](self)
File "/usr/lib64/python2.7/pickle.py", line 880, in load_eof
   raise EOFError
EOFError

我的朋友也尝试使用 python 2 在他的计算机上加载这个文件,他这样做没有任何问题......

任何想法来解决这个问题?顺便说一句,我使用的是 python 2.7.5,而他使用的是 python 2.7.10 和 python 3.5。

4

1 回答 1

0

我相信我已经尝试过非常相似的方法并收到了与您相同的结果;我也在运行 2.7.5。当我更新到 3.4 时,我没有再收到错误并且我的函数运行正常,所以我很可能会说问题是你的 python 已经过时了。

于 2016-04-04T13:59:15.883 回答