2013-04-01 3 views
2

Я хочу знать, как я могу хранить объект класса в файле, чтобы потом его загрузить. например) У меня есть класс стека, и мне нужно сохранить объект этого класса для последующего его извлечения. Я попробовал следующее:вывести объект в файл с помощью python

output_file=open('hello.txt','w') 
output_file.write(x) 

Где x - объект класса стека. Вся программа стек работает хорошо, и когда я пришел к этой хранящей части, я получаю сообщение об ошибке, как:

Traceback (most recent call last): 
File "class.py", line 32, in <module> 
    output_file.write(x) 
TypeError: expected a character buffer object 

Как я могу исправить эту ошибку? Каков наилучший способ хранения?

+0

Что находится в стеке? Что вы ожидаете от содержимого файла, или это имеет значение? –

+0

Не имеет значения, как выглядит содержимое файла. Мне просто нужен способ сохранить его и вернуть его позже. –

ответ

1

Либо используйте pickle как предложено или принуждают объект к str, что и ожидалось write.

Обратите внимание, что если вы решите принудить вас к str и хотите восстановить объект, вам необходимо перезаписать __str__ в объекте, который вы сериализуете, чтобы выводить достаточно данных для восстановления объекта.

+0

так, будет ли функция записи принимать только строки? –

+0

Просто слепо называть 'str' на вещи, определенно, не будет вставлять ** полезную ** строку в файл. –

+0

@Aswin, да, проверьте документацию на полную информацию. –

Смежные вопросы