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

---

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

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

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

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

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

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

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

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

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

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

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

  - [Учебное пособие](https://python-all.ru/3.11/library/sqlite3.html#tutorial)
  - [Справочник](https://python-all.ru/3.11/library/sqlite3.html#reference)

    - [Функции модуля](https://python-all.ru/3.11/library/sqlite3.html#module-functions)
    - [Константы модуля](https://python-all.ru/3.11/library/sqlite3.html#module-constants)
    - [Объекты соединения](https://python-all.ru/3.11/library/sqlite3.html#connection-objects)
    - [Объекты курсора](https://python-all.ru/3.11/library/sqlite3.html#cursor-objects)
    - [Объекты строки](https://python-all.ru/3.11/library/sqlite3.html#row-objects)
    - [Объекты Blob](https://python-all.ru/3.11/library/sqlite3.html#blob-objects)
    - [Объекты PrepareProtocol](https://python-all.ru/3.11/library/sqlite3.html#prepareprotocol-objects)
    - [Исключения](https://python-all.ru/3.11/library/sqlite3.html#exceptions)
    - [Типы SQLite и Python](https://python-all.ru/3.11/library/sqlite3.html#sqlite-and-python-types)
    - [Адаптеры и преобразователи по умолчанию](https://python-all.ru/3.11/library/sqlite3.html#default-adapters-and-converters)
  - [Инструкции](https://python-all.ru/3.11/library/sqlite3.html#how-to-guides)

    - [Как использовать заполнители для привязки значений в SQL-запросах](https://python-all.ru/3.11/library/sqlite3.html#how-to-use-placeholders-to-bind-values-in-sql-queries)
    - [Как адаптировать пользовательские типы Python к значениям SQLite](https://python-all.ru/3.11/library/sqlite3.html#how-to-adapt-custom-python-types-to-sqlite-values)

      - [Как создавать адаптируемые объекты](https://python-all.ru/3.11/library/sqlite3.html#how-to-write-adaptable-objects)
      - [Как регистрировать адаптеры-вызываемые объекты](https://python-all.ru/3.11/library/sqlite3.html#how-to-register-adapter-callables)
    - [Как преобразовывать значения SQLite в пользовательские типы Python](https://python-all.ru/3.11/library/sqlite3.html#how-to-convert-sqlite-values-to-custom-python-types)
    - [Рецепты адаптеров и преобразователей](https://python-all.ru/3.11/library/sqlite3.html#adapter-and-converter-recipes)
    - [Как использовать сокращённые методы соединения](https://python-all.ru/3.11/library/sqlite3.html#how-to-use-connection-shortcut-methods)
    - [Как использовать контекстный менеджер соединения](https://python-all.ru/3.11/library/sqlite3.html#how-to-use-the-connection-context-manager)
    - [Как работать с URI SQLite](https://python-all.ru/3.11/library/sqlite3.html#how-to-work-with-sqlite-uris)
    - [Как создавать и использовать фабрики строк](https://python-all.ru/3.11/library/sqlite3.html#how-to-create-and-use-row-factories)
    - [Как обрабатывать кодировки текста, отличные от UTF-8](https://python-all.ru/3.11/library/sqlite3.html#how-to-handle-non-utf-8-text-encodings)
  - [Пояснения](https://python-all.ru/3.11/library/sqlite3.html#explanation)

    - [Управление транзакциями](https://python-all.ru/3.11/library/sqlite3.html#transaction-control)
