我正在腌制一些变量,该过程被中断。如何从部分腌制的文件中恢复数据?
使用以下方式提取了两个列表列表:
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_方法”的指导将非常有用。
谢谢。