Spec-Zone.ru › Python 2.7

anydbm — Универсальный доступ к базам данных в стиле DBM

Примечание

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

anydbm — это универсальный интерфейс для вариантов баз данных DBM — dbhash (требует bsddb), gdbm или dbm. Если ни один из этих модулей не установлен, будет использована медленная, но простая реализация в модуле dumbdbm.

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

Открывает файл базы данных filename и возвращает соответствующий объект.

Если файл базы данных уже существует, модуль whichdb используется для определения его типа, и используется соответствующий модуль; если он не существует, используется первый из перечисленных выше модулей, который может быть импортирован.

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

Значение

Значение

'r'

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

'w'

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

'c'

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

'n'

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

Если не указано, значение по умолчанию — 'r'.

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

exception anydbm.error

Кортеж, содержащий исключения, которые могут быть возбуждены каждым из поддерживаемых модулей, с уникальным исключением, также имеющим имя anydbm.error, как первый элемент — последний используется, когда возбуждается anydbm.error.

Объект, возвращаемый open(), поддерживает большинство функций словарей; ключи и соответствующие значения могут быть сохранены, извлечены и удалены, и доступны методы has_key() и keys(). Ключи и значения должны всегда быть строками.

Следующий пример записывает некоторые имена хостов и соответствующее заголовок, а затем выводит содержимое базы данных:

import anydbm

# Open database, creating it if necessary.
db = anydbm.open('cache', 'c')

# Record some values
db['www.python.org'] = 'Python Website'
db['www.cnn.com'] = 'Cable News Network'

# Loop through contents.  Other dictionary methods
# such as .keys(), .values() also work.
for k, v in db.iteritems():
    print k, '\t', v

# Storing a non-string key or value will raise an exception (most
# likely a TypeError).
db['www.yahoo.com'] = 4

# Close when done.
db.close()

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

anydbm.close()

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

См. также

Module dbhash

Интерфейс базы данных BSD db.

Module dbm

Стандартный Unix-интерфейс базы данных.

Module dumbdbm

Переносная реализация интерфейса dbm.

Module gdbm

GNU-интерфейс базы данных, основанный на интерфейсе dbm.

Module shelve

Общая персистентность объектов, построенная поверх Python-интерфейса dbm.

Module whichdb

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

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

Spec-Zone.ru

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