【问题标题】:How can I know if pickle.dump() successfully saved the file我怎么知道 pickle.dump() 是否成功保存了文件
【发布时间】:2017-06-11 17:52:03
【问题描述】:

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

我正在使用 python 3,目前在 jupyter notebook 中

【问题讨论】:

  • 如果你对这个问题投了反对票,你至少能说出原因,或者指出如何改进它吗?
  • 为什么讨厌,这是一个完全有效的问题???
  • @MattiLyra 感谢您的编辑.. 和支持。

标签: python-3.x pickle


【解决方案1】:

如果pickle.dumppickle.dumps 失败,将抛出错误。请参阅下面的docs,了解可以腌制和不能腌制的食物。如果某些较低级别的系统调用失败,您也可能会收到 OSError (link)

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

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

您可能还想看看dillpickle https://github.com/uqfoundation/dill 涵盖的案例略多

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-21
    • 1970-01-01
    • 1970-01-01
    • 2020-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多