从python中的文件读取类对象列表
我有一个名为flower的类,它有两个属性,name和price 我列出了一个列表,其中有一些花卉对象,我将它们写入了一个文件,如何通过读取该文件来创建对象列表 这是我的文件中的内容:从python中的文件读取类对象列表,python,list,class,Python,List,Class,我有一个名为flower的类,它有两个属性,name和price 我列出了一个列表,其中有一些花卉对象,我将它们写入了一个文件,如何通过读取该文件来创建对象列表 这是我的文件中的内容: [lily;5,rose;10]Python提供了两种标准方法,用于将对象序列化到文件以供以后检索。最常见的两种是pickle和JSON(使用simplejson模块) 如果您只打算在Python程序中使用序列化数据,那么pickle是更简单的选择。如果您需要能够跨多个程序共享数据,那么JSON是更自然的选择 您
[lily;5,rose;10]Python提供了两种标准方法,用于将对象序列化到文件以供以后检索。最常见的两种是
pickle
和JSON(使用simplejson
模块)
如果您只打算在Python程序中使用序列化数据,那么pickle
是更简单的选择。如果您需要能够跨多个程序共享数据,那么JSON是更自然的选择
您可以在此处阅读有关pickle
模块的更多信息:
作为使用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
正如您所知道的,您的文件的文本设置类似于字典,尽管它是一个列表。如果将方括号切换为花括号,将分号切换为冒号,那么编写代码将比列表容易得多,而且语法正确。