从python中的文件中读取类对象列表

时间:2016-12-20 18:06:45

标签: python list class

我有一个名为flower的类,它有两个属性,名称和价格

我制作了一个列表,其中我有一些花卉对象并将其写入文件,如何通过读取文件创建对象列表?

这就是我在文件中的内容: [百合; 5,玫瑰; 10]

1 个答案:

答案 0 :(得分:1)

Python提供了几种标准方法,用于将对象序列化为文件以供以后检索。最常见的两个是pickle和JSON(使用simplejson模块)。

如果你只想在Python程序中使用序列化数据,那么pickle是更简单的选择。如果您需要能够跨多个程序共享数据,那么JSON是更自然的选择。

您可以在此处详细了解pickle模块:https://docs.python.org/2/library/pickle.html

作为使用pickle的简单示例:

class Flower(object):
    def __init__(self, type, value):
        super(Flower, self).__init__()
        self.type = type
        self.value = value

    def __str__(self):
        return "I'm a {} and cost ${}!".format(self.type, self.value)

if __name__== "__main__":
    flowers = [ Flower("lily",5), Flower("rose",10) ]
    for f in flowers:
        print f

    pfile = open("flower_list.pickle", mode="wb")
    pickle.dump(flowers, pfile)
    pfile.close()

    pfile = open("flower_list.pickle", mode="rb")
    recalled_flowers = pickle.load(pfile)
    pfile.close()

    for f in recalled_flowers:
        print f