Spec-Zone.ru › Python 2.7

gdbm — Переосмысление dbm компанией GNU

Примечание

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

Этот модуль очень похож на модуль dbm, но использует gdbm для обеспечения дополнительной функциональности. Обратите внимание, что форматы файлов, созданные модулями gdbm и dbm, несовместимы.

Модуль gdbm предоставляет интерфейс к библиотеке GNU DBM. Объекты gdbm ведут себя как отображения (словари), за исключением того, что ключи и значения всегда являются строками. Вывод объекта gdbm не выводит ключи и значения, и методы items() и values() не поддерживаются.

Модуль определяет следующие константы и функции:

exception gdbm.error

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

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

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

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

Значение

Описание

'r'

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

'w'

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

'c'

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

'n'

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

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

Значение

Описание

'f'

Открыть базу данных в быстром режиме. Записи в базу данных не будут синхронизированы.

's'

Режим синхронизации. Это приведет к тому, что изменения в базе данных будут немедленно записаны в файл.

'u'

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

Не все флаги допустимы для всех версий gdbm. Модульная константа open_flags — это строка поддерживаемых символов флагов. Исключение error генерируется, если указан недопустимый флаг.

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

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

gdbm.firstkey()

С помощью этого метода и метода nextkey() можно перебрать каждый ключ в базе данных. Перебор упорядочен по внутренним хеш-значениям gdbm и не будет отсортирован по значениям ключей. Этот метод возвращает начальный ключ.

gdbm.nextkey(key)

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

k = db.firstkey()
while k != None:
    print k
    k = db.nextkey(k)
gdbm.reorganize()

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

gdbm.sync()

Если база данных была открыта в быстром режиме, этот метод заставляет любые несохраненные данные быть записанными на диск.

gdbm.close()

Закрывает базу данных gdbm.

См. также

Module anydbm

Общий интерфейс к базам данных типа dbm.

Module whichdb

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

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

Spec-Zone.ru

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