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

11.10. dbhash – DBM-подобный интерфейс к библиотеке баз данных BSDdbhash – DBM-style interface to the BSD database library

Устарело с версии 2.6: Модуль dbhash удалён в Python 3.

Модуль dbhash предоставляет функцию для открытия баз данных с помощью библиотеки BSD db. Этот модуль повторяет интерфейс других модулей баз данных Python, которые обеспечивают доступ к базам данных в стиле DBM. Для использования dbhash требуется модуль bsddb.

Этот модуль предоставляет исключение и функцию:

exception dbhash.error

Исключение, возникающее при ошибках базы данных, кроме KeyError. Является синонимом bsddb.error.

dbhash.open(path[, flag[, mode]])

Открывает базу данных db и возвращает объект базы данных. Аргумент path – это имя файла базы данных.

Аргумент flag может принимать следующие значения:

Значение

Значение

'r'

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

'w'

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

'c'

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

'n'

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

На платформах, где библиотека BSD db поддерживает блокировку, можно добавить 'l', чтобы указать, что блокировка должна использоваться.

Необязательный параметр mode используется для указания битов разрешений Unix, которые должны быть установлены, если необходимо создать новую базу данных; это значение будет маскироваться текущим значением umask процесса.

См. также

Модуль anydbm

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

Модуль bsddb

Низкоуровневый интерфейс к библиотеке BSD db.

Модуль whichdb

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

11.10.1. Объекты базы данныхDatabase Objects

Объекты базы данных, возвращаемые open(), предоставляют общие для всех баз данных в стиле DBM и отображающих объектов методы. В дополнение к стандартным методам доступны следующие методы.

dbhash.first()

Можно перебрать все пары ключ/значение в базе данных с помощью этого метода и метода next(). Обход упорядочен по внутренним хеш-значениям базы данных, а не будет отсортирован по значениям ключей. Этот метод возвращает начальный ключ.

dbhash.last()

Возвращает последнюю пару ключ/значение при обходе базы данных. Это может быть использовано для начала обхода в обратном порядке; см. previous().

dbhash.next()

Возвращает следующую пару ключ/значение при обходе базы данных. Следующий код выводит каждый ключ в базе данных db, без необходимости создавать в памяти список, содержащий их все:

print db.first()
for i in xrange(1, len(db)):
    print db.next()
dbhash.previous()

Возвращает предыдущую пару ключ/значение при прямом обходе базы данных. В сочетании с last() это может быть использовано для реализации обхода в обратном порядке.

dbhash.sync()

Этот метод принудительно записывает все незаписанные данные на диск.