我怎么知道pickle.dump()
是否成功保存了pickle文件?
在docs中,我没有看到表示成功或失败的返回值。
我正在使用python 3,目前使用的是jupyter笔记本
答案 0 :(得分:3)
如果pickle.dump
或pickle.dumps
失败,则会引发错误。请进一步查看docs可以腌制和不腌制的内容。如果某个较低级别的系统调用失败,您也可能会获得OSError
(link)
但请注意,即使pickle.dump
没有引发错误,您仍可能无法加载pickle
d数据。例如,你可以pickle
使用导入的对象或引用在pickling
代码的上下文中定义的函数,例如Jupyter笔记本定义了一个引用的自定义函数被腌制的物体。如果您现在将该pickle对象文件发送到另一台机器,它将不会看到该对象中引用的函数,并且unpickling将失败。
同样,如果模拟对象所依赖的模块中存在API更改,则导入路径可能已更改,并且unpickling将再次失败。
您可能还想查看dill
,其中涵盖的案例略多于pickle
https://github.com/uqfoundation/dill