Содержание страницы
11.10. dbhash – DBM-подобный интерфейс к библиотеке баз данных BSD¶dbhash – 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 процесса.
См. также
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()¶ Этот метод принудительно записывает все незаписанные данные на диск.