Я пытаюсь создать генеалогическое древо в python, и я хочу создать словарь лиц, где ключ - это имя человека, а значение - это объект Person для этого имени ,Сохранение словаря указателей в файл
Я могу создать словарь отлично, и я могу сэкономить его, используя приведенный ниже код.
import os, ast
myFile = open(FILE, "r+") # Opens the file for reading and writing
tree = myFile.read()
if tree == "":
tree = {}
else:
tree = ast.literal_eval(tree)
def save():
myFile.write(str(tree))
myFile.close()
Однако, когда я перезагрузить свою программу и попытаться прочитать в словаре, я получаю следующее сообщение об ошибке:
File "<unknown>", line 1
{'Charlie': <__main__.Person object at 0x00000000032DB860>}
^
SyntaxError: invalid syntax
Я подозреваю, что оценщик не может распознать объект, потому что, как только программа закрытие указателя больше не существует. Есть ли способ сохранить мой словарь, чтобы я мог перезагрузить его и получить доступ ко всем данным моих объектов Person, не теряя его каждый раз, когда моя программа закрывается?
Использование pickle, это легко: https://wiki.python.org/moin/UsingPickle (или cPickle, чтобы идти быстрее) http://docs.python.org/2/library/pickle.html – fredtantini
Обратите внимание, что Теги не являются ключевыми словами. Наполнение списка тегов, заполненных теми же словами, что и в вашем вопросе (словарь, класс, сохранение, чтение) не поможет его категоризировать. Обязательно прочитайте описания, которые появляются при выборе тегов! – Charles