【问题标题】:Is there a way to save python objects to disk, that do not have a 'write' attribute [closed]有没有办法将没有“写入”属性的python对象保存到磁盘[关闭]
【发布时间】:2020-06-22 23:40:54
【问题描述】:

我看到 pickle 是将 python 对象保存到磁盘的标准方法。但是,当我尝试这个时

pickle.dump( embeddings , 'embeddings.pickle', pickle.HIGHEST_PROTOCOL)

我明白了

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-36-ae20bbf8c8a9> in <module>()
----> 1 pickle.dump( embeddings , 'embeddings.pickle', pickle.HIGHEST_PROTOCOL)

TypeError: file must have a 'write' attribute

没有'write'属性的python对象有没有办法

【问题讨论】:

  • 什么是embeddings?您可以只使用一些适配器将其转换为兼容的形式,或者只是手动读/写到/从磁盘
  • dump 是否需要文件句柄而不是文件名作为第二个参数? (我自己没用过,只是看文档字符串。)
  • 来自帮助:*file* 参数必须有一个接受单个字节参数的 write() 方法。 它是一个类似文件的对象。 open(''embeddings.pickle', 'wb') 应该可以。

标签: python pickle


【解决方案1】:

pickle.dump() 的第二个参数必须是打开的文件,而不是文件名。

with open('embeddings.pickle', 'wb') as f:
    pickle.dump( embeddings , f, pickle.HIGHEST_PROTOCOL)

【讨论】:

    猜你喜欢
    • 2012-02-24
    • 2014-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-21
    • 2017-06-14
    • 1970-01-01
    • 2015-07-31
    相关资源
    最近更新 更多