1 / 10

Data Persistence

Data Persistence. Модули, рассматриваемые в этой теме, предоставляют возможность сохранения и копирования объектов языка Python: pickle Преобразует объекты языка Python в последовательность байтов и обратно. cPickle Более быстрый вариант модуля pickle. Shelve

Télécharger la présentation

Data Persistence

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Data Persistence Модули, рассматриваемые в этой теме, предоставляют возможность сохранения и копирования объектов языка Python: • pickle Преобразует объекты языка Python в последовательность байтов и обратно. • cPickle Более быстрый вариант модуля pickle. • Shelve Сохранение объектов в базе дынных в стиле DMB. • marshal Позволяет получить байт-компилированное представление объектов кода (и сопуствующих им объектов) и восстановить объекты из байт-компилированного представления.

  2. pickle и cPickle Модули pickle и cPickle определяют следующие конструкторы: • Pickler (file [, bin]) Класс (в модуле pickle) или функция (в модуле cPickle), возвращает объект, реализующий “консервирование”. Аргумент file доджен быть файловым объектом, имеющим метод write(). Если задан отличный от нуля аргумент bin (целое число), используется более компактный двоичный формат. • Unpickler(file) Класс (в модуле pickle) или функция (в модуле cPickle), возвращает объект, реализующий восстановление “законсервированного” объекта. Аргумнт file должен быть файловым объектом, имеющим методы read() и readline()

  3. pickle и cPickle Объекты, возвращаемые конструктором pickler(), имеют следующие (основные) методы: • dump(object) “Консервирует” объект object • persistent_id(object) Этот метод вызывается для каждого из вложенных объектов Должен возвращать стороку-идентификатор постоянного объекта или None, если объект подлежит консервации. Объекты, возращаемые конструктором Unpickler(), имеют методы, предназначенные для выполнения обратных действий: • Load() Восстанавливает и возращает ранее “законсервированный” объект.

  4. pickle и cPickle Кроме конструкторов Pickler() и Unpickler() модули определяют следующие функции и объекты данных: • dump( object, file [, bin]) “Консервирует” объект object в файл file. • load(file) Восстанавливает “законсервированный” объект из файла file и возвращает его. • dumps(object [, bin]) Возращает “законсервированное” представаление объекта в виде строки виесто того, чтобы записывать его в файл. • loads(string) Восстанавливает “законсервированный” объект из строки string и возвращает его.

  5. pickle и cPickle Ниже приведен список объектов, которые могут быть “законсервированы”: • None • Целые, длинные целые и вещественные числа • Прострые строки и строки Unicode • Кортежи, списки и словари, содержащие только объекты, которые могут быть “законсервированы”. • Классы и функции, определенные в глобальном пространстве имен модуля (на самом деле запоминаются только имена модуля и функции) • Экземпляры классов, атрибут __dict__ которых может быть “законсервирован”

  6. pickle и cPickle Пример использования: • import pickle • data1 = {'a': [1, 2.0, 3, 4+6j], • 'b': ('string', u'Unicode string'), • 'c': None} • selfref_list = [1, 2, 3] • selfref_list.append(selfref_list) • output = open('data.pkl', 'wb') • # Pickle dictionary using protocol 0. • pickle.dump(data1, output) • # Pickle the list using the highest protocol available. • pickle.dump(selfref_list, output, -1) • output.close()

  7. shelve • С помощью этого модуля Вы можете создать “стеллаж” (shelf) — объект с интерфейсом словаря, который позволяет сохранять в базе данных в стиле DBM объекты в “законсервированном” виде. Для консервации используется модуль cPickle или pickle, если первый недоступен. • open(filename [, flag]) Открывает файл filename с базой данных в стиле DBM и на его основе создает и возвращает объект-стеллаж. Флаг flag используется в качестве второго аргумента в функции anydbm.open() (см. описание модуля anydbm).

  8. marshal • С помощью этого модуля Вы можете создать “стеллаж” (shelf) — объект с интерфейсом словаря, который позволяет сохранять в базе данных в стиле DBM объекты в “законсервированном” виде. Для консервации используется модуль cPickle или pickle, если первый недоступен. • open(filename [, flag]) Открывает файл filename с базой данных в стиле DBM и на его основе создает и возвращает объект-стеллаж. Флаг flag используется в качестве второго аргумента в функции anydbm.open()

  9. marshal • Этот модуль позволяет получить байт-компилированное представление объектов кода (code), а также сопутствующих им объектов: None; объектов, которые могут быть представлены литеральными выражениями (любые числа и строки); кортежей, списков и словарей, содержащих только объекты, для которых может быть получено байткомпилированное представление..

  10. marshal • Модуль определяет следующие функции: • dump(object, file) Записывает байт-компилированное представление объекта object в файл. Аргумент file должен быть объектом типа file, открытым для записи в двоичном режиме (’wb’ или ’w+b’). • load(file) Считывает байт-компилированное представление для одного объекта из файла, восстанавливает его и возвращает. • dumps(object) Возвращает строку с байт-компилированным представлением объекта object. • loads(string) Восстанавливает объект из байт-компилированного представления string. Лишние символы в строке игнорируются.

More Related