> **Источник:** https://python-all.ru/3.9/library/persistence.html
>
> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.

---

# Персистентность данных

Модули, описанные в этой главе, поддерживают сохранение данных Python на диск в персистентной форме. Модули [`pickle`](https://python-all.ru/3.9/library/pickle.html#module-pickle) и [`marshal`](https://python-all.ru/3.9/library/marshal.html#module-marshal) могут преобразовывать многие типы данных Python в поток байтов, а затем восстанавливать объекты из байтов. Различные модули, связанные с DBM, поддерживают семейство хеш-форматов файлов, которые хранят отображение строк на другие строки.

Список модулей, описанных в этой главе:

- [`pickle` – Сериализация объектов Python](https://python-all.ru/3.9/library/pickle.html)

  - [Связь с другими модулями Python](https://python-all.ru/3.9/library/pickle.html#relationship-to-other-python-modules)

    - [Сравнение с `marshal`](https://python-all.ru/3.9/library/pickle.html#comparison-with-marshal)
    - [Сравнение с `json`](https://python-all.ru/3.9/library/pickle.html#comparison-with-json)
  - [Формат потока данных](https://python-all.ru/3.9/library/pickle.html#data-stream-format)
  - [Интерфейс модуля](https://python-all.ru/3.9/library/pickle.html#module-interface)
  - [Что можно сериализовать и десериализовать?](https://python-all.ru/3.9/library/pickle.html#what-can-be-pickled-and-unpickled)
  - [Сериализация экземпляров классов](https://python-all.ru/3.9/library/pickle.html#pickling-class-instances)

    - [Сохранение внешних объектов](https://python-all.ru/3.9/library/pickle.html#persistence-of-external-objects)
    - [Диспетчерские таблицы](https://python-all.ru/3.9/library/pickle.html#dispatch-tables)
    - [Обработка объектов с состоянием](https://python-all.ru/3.9/library/pickle.html#handling-stateful-objects)
  - [Пользовательская редукция для типов, функций и других объектов](https://python-all.ru/3.9/library/pickle.html#custom-reduction-for-types-functions-and-other-objects)
  - [Внеполосные буферы](https://python-all.ru/3.9/library/pickle.html#out-of-band-buffers)

    - [API провайдера](https://python-all.ru/3.9/library/pickle.html#provider-api)
    - [API потребителя](https://python-all.ru/3.9/library/pickle.html#consumer-api)
    - [Пример](https://python-all.ru/3.9/library/pickle.html#example)
  - [Ограничение глобальных переменных](https://python-all.ru/3.9/library/pickle.html#restricting-globals)
  - [Производительность](https://python-all.ru/3.9/library/pickle.html#performance)
  - [Примеры](https://python-all.ru/3.9/library/pickle.html#examples)
- [`copyreg` – Регистрация вспомогательных функций `pickle`](https://python-all.ru/3.9/library/copyreg.html)

  - [Пример](https://python-all.ru/3.9/library/copyreg.html#example)
- [`shelve` – Персистентность объектов Python](https://python-all.ru/3.9/library/shelve.html)

  - [Ограничения](https://python-all.ru/3.9/library/shelve.html#restrictions)
  - [Пример](https://python-all.ru/3.9/library/shelve.html#example)
- [`marshal` – Внутренняя сериализация объектов Python](https://python-all.ru/3.9/library/marshal.html)
- [`dbm` – Интерфейсы к Unix-«базам данных»](https://python-all.ru/3.9/library/dbm.html)

  - [`dbm.gnu` – переосмысление dbm от GNU](https://python-all.ru/3.9/library/dbm.html#module-dbm.gnu)
  - [`dbm.ndbm` – интерфейс на основе ndbm](https://python-all.ru/3.9/library/dbm.html#module-dbm.ndbm)
  - [`dbm.dumb` – Переносимая реализация DBM](https://python-all.ru/3.9/library/dbm.html#module-dbm.dumb)
- [`sqlite3` – Интерфейс DB-API 2.0 для баз данных SQLite](https://python-all.ru/3.9/library/sqlite3.html)

  - [Функции и константы модуля](https://python-all.ru/3.9/library/sqlite3.html#module-functions-and-constants)
  - [Объекты соединений](https://python-all.ru/3.9/library/sqlite3.html#connection-objects)
  - [Объекты Cursor](https://python-all.ru/3.9/library/sqlite3.html#cursor-objects)
  - [Объекты Row](https://python-all.ru/3.9/library/sqlite3.html#row-objects)
  - [Исключения](https://python-all.ru/3.9/library/sqlite3.html#exceptions)
  - [Типы SQLite и Python](https://python-all.ru/3.9/library/sqlite3.html#sqlite-and-python-types)

    - [Введение](https://python-all.ru/3.9/library/sqlite3.html#introduction)
    - [Использование адаптеров для хранения дополнительных типов Python в базах данных SQLite](https://python-all.ru/3.9/library/sqlite3.html#using-adapters-to-store-additional-python-types-in-sqlite-databases)

      - [Адаптация объекта самостоятельно](https://python-all.ru/3.9/library/sqlite3.html#letting-your-object-adapt-itself)
      - [Регистрация вызываемого адаптера](https://python-all.ru/3.9/library/sqlite3.html#registering-an-adapter-callable)
    - [Преобразование значений SQLite в пользовательские типы Python](https://python-all.ru/3.9/library/sqlite3.html#converting-sqlite-values-to-custom-python-types)
    - [Адаптеры и преобразователи по умолчанию](https://python-all.ru/3.9/library/sqlite3.html#default-adapters-and-converters)
  - [Управление транзакциями](https://python-all.ru/3.9/library/sqlite3.html#controlling-transactions)
  - [Эффективное использование `sqlite3`](https://python-all.ru/3.9/library/sqlite3.html#using-sqlite3-efficiently)

    - [Использование сокращённых методов](https://python-all.ru/3.9/library/sqlite3.html#using-shortcut-methods)
    - [Доступ к столбцам по имени, а не по индексу](https://python-all.ru/3.9/library/sqlite3.html#accessing-columns-by-name-instead-of-by-index)
    - [Использование соединения в качестве контекстного менеджера](https://python-all.ru/3.9/library/sqlite3.html#using-the-connection-as-a-context-manager)
