如何从半腌的pkl文件中恢复信息?

时间:2019-05-21 02:01:42

标签: python pickle

我正在腌制一些变量,该过程被中断。如何从部分腌制的文件中恢复数据?

使用以下方式提取了两个列表列表:

import pickle
import sys

sys.setrecursionlimit(5000) # to get around max depth recursion error

with open('level4_half.pkl', 'wb') as f:
    pickle.dump([level4_url, level4_desc], f)

从Windows资源管理器中检查文件不为空(158MB

尝试使用以下方法解除锁定文件:

with open('level4_half.pkl','rb') as f: 
    level4_url, level4_desc = pickle.load(f)

并遇到错误:

Traceback (most recent call last):

  File "<ipython-input-18-32ed3a0e79d4>", line 2, in <module>
    level4_url, level4_desc = pickle.load(f)

EOFError

(以前,我曾尝试使用上述命令成功地对文件进行腌制和解腌(完全腌制)。)

我发现了类似的问题here,但是我没有使用dill,并且不确定是否将部分腌制的文件视为损坏的文件。我目前的技术技能还不够磨练,无法在那里快速实现解决方案:“通读Python模块的源代码,您可能会找到一种钩住所有load_方法的方法,以为您提供更多信息。”如果事实证明是对我的问题的相同解决方案,那么对我如何“钩住所有load_方法”的指导将非常有用。

谢谢。

0 个答案:

没有答案