2016-12-20 2 views
-1

У меня есть класс с именем цветок с двумя атрибутов, названием и ценойЧтение списка объектов класса из файла в Python

я сделал список, где у меня есть несколько цветов объектов, и я записал их в файл, как создать список объектов, прочитав файл?

Это то, что у меня есть в моем файле: [лилии, 5, роза; 10]

+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 
Смежные вопросы