Документация Python неофициальный перевод

11.8. dbm – Простой интерфейс «базы данных»dbm – Simple “database” interface

Примечание

Модуль dbm был переименован в dbm.ndbm в Python 3. Инструмент 2to3 автоматически адаптирует импорты при преобразовании исходных кодов в Python 3.

Модуль dbm предоставляет интерфейс к библиотеке Unix «(n)dbm». Объекты dbm ведут себя как отображения (словари), за исключением того, что ключи и значения всегда являются строками. При выводе объекта dbm ключи и значения не печатаются, а методы items() и values() не поддерживаются.

Этот модуль можно использовать с «классическим» интерфейсом ndbm, интерфейсом совместимости BSD DB или интерфейсом совместимости GNU GDBM. В Unix сценарий configure попытается найти соответствующий заголовочный файл, чтобы упростить сборку этого модуля.

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

exception dbm.error

Возникает при ошибках, специфичных для dbm, например, ошибках ввода-вывода. KeyError возникает при общих ошибках отображения, например, при указании неверного ключа.

dbm.library

Имя используемой библиотеки реализации ndbm.

dbm.open(filename[, flag[, mode]])

Открывает базу данных dbm и возвращает объект dbm. Аргумент filename – это имя файла базы данных (без расширений .dir или .pag; обратите внимание, что реализация интерфейса BSD DB добавляет расширение .db и создаёт только один файл).

Необязательный аргумент flag должен быть одним из следующих значений:

Значение

Значение

'r'

Открыть существующую базу данных только для чтения (по умолчанию)

'w'

Открыть существующую базу данных для чтения и записи

'c'

Открыть базу данных для чтения и записи, создав её, если она не существует

'n'

Всегда создавать новую пустую базу данных, открытую для чтения и записи

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

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

dbm.close()

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

См. также

Модуль anydbm

Общий интерфейс для баз данных стиля dbm.

Модуль gdbm

Интерфейс, аналогичный библиотеке GNU GDBM.

Модуль whichdb

Вспомогательный модуль для определения типа существующей базы данных.