繁体   English   中英

保存到文件并使用其属性加载python类的实例

[英]Save to file and load an instance of a python class with its attributes

我正在与python进行数据分析,并希望找到一种将类的实例保存到文件中的好方法,以便以后可以在保持其属性值的情况下重新加载它。 特别是,此类的一个实例将加载作为其他类的实例的对象,然后进行处理器密集型比较,这需要一段时间才能完成。

例如:

import pickle

class MyClass():
    def __init__(self):
        self.info = OtherClass(option=1)

    def pickle(self):
        f = file('test_file', 'wb')
        pickle.dump(self, f, pickle.HIGHEST_PROTOCOL)
        f.close()

    def unpickle(self):
        f = file('test_file', 'rb')
        pickle.load(f)
        f.close()


class OtherClass():
    def __init__(self, option):
        self.property = option * 2


mydata = MyClass(option=5)

mydata.pickle()

然后,稍后导入此模块并运行mydata.unpickle()以取回mydata(我还有一个选项,用于查找文件是否之前已被腌制,如果有的话,则暂停计算和调用OtherClass实例)。 现在,如果执行此操作,则可以加载mydata,但不再包含mydata.info对象。 我的理解是,这是咸菜的有意组成部分,但是有没有一种方法可以完全保存mydata以便以后使用呢?

您不会对已加载的数据执行任何操作。

class MyClass():
    ...
    @staticmethod
    def unpickle():
        with file('test_file', 'rb') as f:
            return pickle.load(f)

data = MyClass.unpickle()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM