我怎么知道pickle.dump()是否成功保存了文件

时间:2017-06-11 17:52:04

标签: python-3.x pickle

我怎么知道pickle.dump()是否成功保存了pickle文件? 在docs中,我没有看到表示成功或失败的返回值。

我正在使用python 3,目前使用的是jupyter笔记本

1 个答案:

答案 0 :(得分:3)

如果pickle.dumppickle.dumps失败,则会引发错误。请进一步查看docs可以腌制和不腌制的内容。如果某个较低级别的系统调用失败,您也可能会获得OSErrorlink

但请注意,即使pickle.dump没有引发错误,您仍可能无法加载pickle d数据。例如,你可以pickle使用导入的对象或引用在pickling代码的上下文中定义的函数,例如Jupyter笔记本定义了一个引用的自定义函数被腌制的物体。如果您现在将该pickle对象文件发送到另一台机器,它将不会看到该对象中引用的函数,并且unpickling将失败。

同样,如果模拟对象所依赖的模块中存在API更改,则导入路径可能已更改,并且unpickling将再次失败。

您可能还想查看dill,其中涵盖的案例略多于pickle https://github.com/uqfoundation/dill