我使用dill.dump_session(filename)抛出了一个木星笔记本会话,它曾经告诉我磁盘存储已经满了。但是,我在磁盘上留了一些空间,然后再试一次。现在,我无法使用dill.load_session(filename)加载会话。
我得到以下错误:
~/.local/lib/python3.6/site-packages/dill/_dill.py in load_session(filename,main) 408 unpickler._main = main 409 unpickler._session = True -> 410 unpickler._main= unpickler.load() 411 unpickler._session = False 412 main.__dict__.update(module.__dict__) EOFError:
该文件(即文件名)的数据大小约为30G。
如何从文件中检索数据?
顺便说一句,我是在Google上运行所有这些的,让这个实例正常运行要花费我很大的钱。
我尝试过使用undill和其他unpickle方法。
例如,我尝试过这样做:
open(file, 'a').close()
try:
with open(file, "rb") as Score_file:
unpickler = pickle.Unpickler(Score_file)
scores = unpickler.load()
return scores但是得到了这个错误:
`6 with open(file, "rb") as Score\_file: 7 unpickler = pickle.Unpickler(Score\_file); ----> 8 scores = unpickler.load(); 9 10 return scores ModuleNotFoundError: No module named '\_\_builtin\_\_'`
发布于 2019-07-19 10:45:03
我知道这可能不是你想听到的答案,但是.听起来你可能有一个损坏的泡菜文件。如果是这样的话,您只能在手工编辑数据的情况下才能获得数据,并且能够理解被腌制的字符串是什么以及它们是如何构造的。请注意,有一些非常罕见的情况,一个对象将dump,而不是load -然而,它更有可能有一个损坏的文件。不管怎样,决议是一样的..。手工编辑是保存您已被腌制的东西的唯一方法。
另外,请注意,如果您使用dump_session,您确实应该使用load_session (就像它在标准load上执行一系列步骤,逆转在dump_session中所做的操作一样) --然而,这与问题无关,问题很可能是存在一个不完整或损坏的泡菜文件。
https://stackoverflow.com/questions/57065696
复制相似问题