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.
См. также
© 2001–2020 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/2.7/library/gdbm.html