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

---

# 11.12. [`dumbdbm`](https://python-all.ru/2.7/library/dumbdbm.html#module-dumbdbm) – Переносимая реализация DBM

> **Примечание**
>
> Модуль [`dumbdbm`](https://python-all.ru/2.7/library/dumbdbm.html#module-dumbdbm) был переименован в `dbm.dumb` в Python 3. Инструмент [2to3](https://python-all.ru/2.7/glossary.html#term-2to3) автоматически адаптирует импорты при преобразовании исходного кода в Python 3.

> **Примечание**
>
> Модуль [`dumbdbm`](https://python-all.ru/2.7/library/dumbdbm.html#module-dumbdbm) предназначен как крайнее запасное решение для модуля [`anydbm`](https://python-all.ru/2.7/library/anydbm.html#module-anydbm), когда недоступен ни один более надёжный модуль. Модуль [`dumbdbm`](https://python-all.ru/2.7/library/dumbdbm.html#module-dumbdbm) не рассчитан на скорость и используется гораздо реже, чем другие модули баз данных.

Модуль [`dumbdbm`](https://python-all.ru/2.7/library/dumbdbm.html#module-dumbdbm) предоставляет постоянный интерфейс, похожий на словарь, который полностью написан на Python. В отличие от других модулей, таких как [`gdbm`](https://python-all.ru/2.7/library/gdbm.html#module-gdbm) и [`bsddb`](https://python-all.ru/2.7/library/bsddb.html#module-bsddb), не требует внешних библиотек. Как и в других постоянных отображениях, ключи и значения должны быть строками.

Модуль определяет следующее:

#### `exception dumbdbm.error`

Возбуждается при ошибках, специфичных для dumbdbm, например при ошибках ввода-вывода. [`KeyError`](https://python-all.ru/2.7/library/exceptions.html#exceptions.KeyError) возбуждается при общих ошибках отображения, например при указании неверного ключа.

#### `dumbdbm.open(filename[, flag[, mode]])`

Открывает базу данных dumbdbm и возвращает объект dumbdbm. Аргумент *filename* – это базовое имя файла базы данных (без каких-либо расширений). При создании базы данных dumbdbm создаются файлы с расширениями `.dat` и `.dir`.

Необязательный аргумент *flag* в настоящее время игнорируется; база данных всегда открывается для обновления и будет создана, если она не существует.

Необязательный аргумент *mode* – это режим файла Unix, используемый только при создании базы данных. По умолчанию это восьмеричное `0666` (и будет изменено текущей umask).

Изменено в версии 2.2: Аргумент *mode* игнорировался в более ранних версиях.

В дополнение к методам, похожим на словарные, объекты `dumbdm` предоставляют следующий метод:

#### `dumbdbm.close()`

Закрыть базу данных `dumbdm`.

> **См. также**
>
> **Модуль [`anydbm`](https://python-all.ru/2.7/library/anydbm.html#module-anydbm)**
>
> Общий интерфейс для баз данных стиля `dbm`.
>
> **Модуль [`dbm`](https://python-all.ru/2.7/library/dbm.html#module-dbm)**
>
> Интерфейс, подобный библиотеке DBM/NDBM.
>
> **Модуль [`gdbm`](https://python-all.ru/2.7/library/gdbm.html#module-gdbm)**
>
> Интерфейс, аналогичный библиотеке GNU GDBM.
>
> **Модуль [`shelve`](https://python-all.ru/2.7/library/shelve.html#module-shelve)**
>
> Модуль персистентности, который хранит нестроковые данные.
>
> **Модуль [`whichdb`](https://python-all.ru/2.7/library/whichdb.html#module-whichdb)**
>
> Вспомогательный модуль для определения типа существующей базы данных.

## 11.12.1. Объекты dumbdbm

В дополнение к методам, предоставляемым классом [`UserDict.DictMixin`](https://python-all.ru/2.7/library/userdict.html#UserDict.DictMixin), объекты `dumbdbm` предоставляют следующие методы.

#### `dumbdbm.sync()`

Синхронизирует каталог и файлы данных на диске. Этот метод вызывается методом [`sync()`](https://python-all.ru/2.7/library/dumbdbm.html#dumbdbm.dumbdbm.sync) объектов `Shelve`.
