Язык программирования Python

       

Модуль 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()



Содержание раздела