Модуль pickle
Процесс записи объекта в виде последовательности байтов называется сериализацией. Для того чтобы сохранить объект во внешней памяти или передать его по каналам связи, его нужно вначале сериализовать.
Модуль pickle позволяет сериализовывать объекты и сохранять их в строке или файле. Следующие объекты могут быть сериализованы:
- встроенные типы: None, числа, строки (обычные и Unicode).
- списки, кортежи и словари, содержащие только сериализуемые объекты.
- функции, определенные на уровне модуля (сохраняется имя, но не реализация!).
- встроенные функции.
- классы, определенные на уровне модуля.
- объекты классов, __dict__ или __setstate__() которые являются сериализуемыми.
Типичный вариант использования модуля приведен ниже.
Сохранение:
import pickle, time mydata = ("abc", 12, [1, 2, 3]) output_file = open("mydata.dat", "w") p = pickle.Pickler(output_file) p.dump(mydata) output_file.close()
Восстановление:
import pickle input_file = open("mydata.dat", "r") mydata = pickle.load(input_file) print mydata input_file.close()