Spec-Zone.ru › Python 2.7

bsddb — Интерфейс к библиотеке Berkeley DB

Устарело начиная с версии 2.6: Модуль bsddb был удалён в Python 3.

Модуль bsddb предоставляет интерфейс к библиотеке Berkeley DB. Пользователи могут создавать файлы базы данных на основе хеш-таблиц, B-деревьев или записей, используя соответствующий вызов открытия. Объекты bsddb в целом ведут себя как словари. Однако ключи и значения должны быть строками, поэтому для использования других объектов в качестве ключей или хранения других типов объектов пользователь должен каким-то образом сериализовать их, обычно используя marshal.dumps() или pickle.dumps().

Модуль bsddb требует библиотеки Berkeley DB версии от 4.0 до 4.7.

См. также

http://www.jcea.es/programacion/pybsddb.htm

Сайт с документацией по интерфейсу bsddb.db Python Berkeley DB, который тесно соответствует объектно-ориентированному интерфейсу, предоставляемому в самой Berkeley DB 4.x.

http://www.oracle.com/database/berkeley-db/

Библиотека Berkeley DB.

Более современный интерфейс объектов DB, DBEnv и DBSequence доступен в модуле bsddb.db, который тесно соответствует интерфейсу Berkeley DB C API, документированному по указанным выше URL-адресам. Дополнительные возможности, предоставляемые API bsddb.db, включают настройку параметров, транзакции, ведение журналов и доступ к базе данных с помощью нескольких процессов.

Ниже приводится описание устаревшего интерфейса bsddb, совместимого со старым модулем Python bsddb. Начиная с Python 2.5, этот интерфейс должен быть безопасным для многопоточного доступа. API bsddb.db рекомендуется для многопоточных пользователей, поскольку он предоставляет больший контроль.

Модуль bsddb определяет следующие функции, которые создают объекты, обеспечивающие доступ к соответствующему типу файла Berkeley DB. Первые два аргумента каждой функции одинаковы. Для удобства портативности в большинстве случаев следует использовать только первые два аргумента.

bsddb.hashopen(filename[, flag[, mode[, pgsize[, ffactor[, nelem[, cachesize[, lorder[, hflags]]]]]]]])

Открыть файл в формате хеш-таблицы с именем filename. Файлы, которые не предполагается сохранять на диске, могут быть созданы путём передачи None в качестве filename. Необязательный flag определяет режим открытия файла. Он может быть 'r' (только чтение), 'w' (чтение-запись), 'c' (чтение-запись — создать, если необходимо; по умолчанию) или 'n' (чтение-запись — обнулить длину). Другие аргументы редко используются и просто передаются в функцию низкого уровня dbopen(). Обратитесь к документации Berkeley DB для получения информации об их использовании и интерпретации.

bsddb.btopen(filename[, flag[, mode[, btflags[, cachesize[, maxkeypage[, minkeypage[, pgsize[, lorder]]]]]]]])

Открыть файл в формате B-дерева с именем filename. Файлы, которые не предполагается сохранять на диске, могут быть созданы путём передачи None в качестве filename. Необязательный flag определяет режим открытия файла. Он может быть 'r' (только чтение), 'w' (чтение-запись), 'c' (чтение-запись — создать, если необходимо; по умолчанию) или 'n' (чтение-запись — обнулить длину). Другие аргументы редко используются и просто передаются в функцию низкого уровня dbopen. Обратитесь к документации Berkeley DB для получения информации об их использовании и интерпретации.

bsddb.rnopen(filename[, flag[, mode[, rnflags[, cachesize[, pgsize[, lorder[, rlen[, delim[, source[, pad]]]]]]]]]])

Открыть файл в формате записей с именем filename. Файлы, которые не предполагается сохранять на диске, могут быть созданы путём передачи None в качестве filename. Необязательный flag определяет режим открытия файла. Он может быть 'r' (только чтение), 'w' (чтение-запись), 'c' (чтение-запись — создать, если необходимо; по умолчанию) или 'n' (чтение-запись — обнулить длину). Другие аргументы редко используются и просто передаются в функцию низкого уровня dbopen. Обратитесь к документации Berkeley DB для получения информации об их использовании и интерпретации.

Примечание

Начиная с версии 2.3, на некоторых Unix-версиях Python может быть модуль bsddb185. Он присутствует только для обеспечения обратной совместимости с системами, поставляемыми со старой библиотекой базы данных Berkeley DB 1.85. Модуль bsddb185 никогда не должен использоваться напрямую в новом коде. Модуль был удалён в Python 3. Если вам всё ещё нужен этот модуль, обратитесь к PyPI.

См. также

Module dbhash

Интерфейс в стиле DBM к библиотеке BSD-базы данных bsddb

1. Объекты хеш-таблиц, B-деревьев и записей

После создания объекты хеш-таблиц, B-деревьев и записей поддерживают те же методы, что и словари. Кроме того, они поддерживают методы, перечисленные ниже.

Изменено в версии 2.3.1: Добавлены методы словаря.

bsddbobject.close()

Закрыть базовый файл. К объекту больше нельзя получить доступ. Поскольку для этих объектов нет метода открытия open(), для повторного открытия файла необходимо вызвать функцию открытия модуля bsddb.

bsddbobject.keys()

Возвращает список ключей, содержащихся в файле DB. Порядок списка не определён и на нём не следует полагаться. В частности, порядок списка, возвращаемого для разных форматов файлов, отличается.

bsddbobject.has_key(key)

Возвращает 1, если файл DB содержит аргумент в качестве ключа.

bsddbobject.set_location(key)

Установить курсор на элемент, указанный ключом key, и вернуть кортеж, содержащий ключ и его значение. Для баз данных бинарных деревьев (открытых с помощью btopen()), если key фактически не существует в базе данных, курсор перейдёт к следующему элементу в отсортированном порядке и вернёт этот ключ и значение. Для других баз данных, если key не найден в базе данных, будет вызвано исключение KeyError.

bsddbobject.first()

Установить курсор на первый элемент в файле DB и вернуть его. Порядок ключей в файле не определён, за исключением случая баз данных B-деревьев. Этот метод вызывает исключение bsddb.error, если база данных пуста.

bsddbobject.next()

Установить курсор на следующий элемент в файле DB и вернуть его. Порядок ключей в файле не определён, за исключением случая баз данных B-деревьев.

bsddbobject.previous()

Установить курсор на предыдущий элемент в файле DB и вернуть его. Порядок ключей в файле не определён, за исключением случая баз данных B-деревьев. Не поддерживается для хеш-таблиц (открытых с помощью hashopen()).

bsddbobject.last()

Установить курсор на последний элемент в файле DB и вернуть его. Порядок ключей в файле не определён. Не поддерживается для хеш-таблиц (открытых с помощью hashopen()). Этот метод вызывает исключение bsddb.error, если база данных пуста.

bsddbobject.sync()

Синхронизировать базу данных на диске.

Пример:

>>> import bsddb
>>> db = bsddb.btopen('spam.db', 'c')
>>> for i in range(10): db['%d'%i] = '%d'% (i*i)
...
>>> db['3']
'9'
>>> db.keys()
['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
>>> db.first()
('0', '0')
>>> db.next()
('1', '1')
>>> db.last()
('9', '81')
>>> db.set_location('2')
('2', '4')
>>> db.previous()
('1', '1')
>>> for k, v in db.iteritems():
...     print k, v
0 0
1 1
2 4
3 9
4 16
5 25
6 36
7 49
8 64
9 81
>>> '8' in db
True
>>> db.sync()
0

© 2001–2020 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/2.7/library/bsddb.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API