【问题标题】:How to save instance object to hard drive如何将实例对象保存到硬盘
【发布时间】:2017-07-15 21:57:47
【问题描述】:

我创建了一个这样的实例:

class some_class():
    def __init__(self, aa, bb):
        self.a = aa
        self.b = bb

    def add(self):
        self.c = self.a + self.b
        return self.c


instance001 = some_class(2,200)

现在我尝试将instance001 保存到硬盘以供将来使用。

with open('Storage', 'w') as file:
    file.write(instance001)

这不起作用。如何存储实例?

首选格式是 hdf,但欢迎任何其他想法。

注意:熊猫在大量使用中。

【问题讨论】:

标签: python python-2.7 file class


【解决方案1】:

如果是纯 Python 类,您可以简单地使用 pickle:

import pickle
with open('Storage', 'wb') as f:
    pickle.dump(instance001, f)

并加载它:

with open('Storage', 'rb') as f:
    instance002 = pickle.load(f)

print(instance002.a)   # 2
print(instance002.b)   # 200

【讨论】:

  • 它有效。我自己也想出来了:)现在我必须了解是否可以将对象附加到泡菜,因为我有很多实例要保存。谢谢
  • @Ranny 你总是可以腌制一个包含多个实例的列表/元组/字典。
  • 我是用一个列表来做的。我可以在其中保存类定义并将其传递给另一个脚本吗?
  • @Ranny 使用imports 可能会更好地解决这个问题。但如果这不可行,我认为最好问一个新 问题。这在 cmets 中太难回答了。
  • @Ranny 我建议你阅读官方的泡菜文档。里面有很多信息,所以你需要多读几遍,第一次浏览一下就可以了。并做一些小实验,看看它是如何工作的。你可以pickle很多东西,一些pickle不能自己处理的对象可以被赋予一些额外的方法让pickle知道如何处理它们。
猜你喜欢
  • 1970-01-01
  • 2015-05-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-26
相关资源
最近更新 更多