Документация Python неофициальный перевод

dumbdbm.md

70 строк · 5.6 КБ · обычная страница · сырой текст · скачать

1> **Источник:** https://python-all.ru/2.7/library/dumbdbm.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# 11.12. [`dumbdbm`](https://python-all.ru/2.7/library/dumbdbm.html#module-dumbdbm) – Переносимая реализация DBM89> **Примечание**10>11> Модуль [`dumbdbm`](https://python-all.ru/2.7/library/dumbdbm.html#module-dumbdbm) был переименован в `dbm.dumb` в Python 3. Инструмент [2to3](https://python-all.ru/2.7/glossary.html#term-2to3) автоматически адаптирует импорты при преобразовании исходного кода в Python 3.1213> **Примечание**14>15> Модуль [`dumbdbm`](https://python-all.ru/2.7/library/dumbdbm.html#module-dumbdbm) предназначен как крайнее запасное решение для модуля [`anydbm`](https://python-all.ru/2.7/library/anydbm.html#module-anydbm), когда недоступен ни один более надёжный модуль. Модуль [`dumbdbm`](https://python-all.ru/2.7/library/dumbdbm.html#module-dumbdbm) не рассчитан на скорость и используется гораздо реже, чем другие модули баз данных.1617Модуль [`dumbdbm`](https://python-all.ru/2.7/library/dumbdbm.html#module-dumbdbm) предоставляет постоянный интерфейс, похожий на словарь, который полностью написан на Python. В отличие от других модулей, таких как [`gdbm`](https://python-all.ru/2.7/library/gdbm.html#module-gdbm) и [`bsddb`](https://python-all.ru/2.7/library/bsddb.html#module-bsddb), не требует внешних библиотек. Как и в других постоянных отображениях, ключи и значения должны быть строками.1819Модуль определяет следующее:2021#### `exception dumbdbm.error`2223Возбуждается при ошибках, специфичных для dumbdbm, например при ошибках ввода-вывода. [`KeyError`](https://python-all.ru/2.7/library/exceptions.html#exceptions.KeyError) возбуждается при общих ошибках отображения, например при указании неверного ключа.2425#### `dumbdbm.open(filename[, flag[, mode]])`2627Открывает базу данных dumbdbm и возвращает объект dumbdbm. Аргумент *filename* – это базовое имя файла базы данных (без каких-либо расширений). При создании базы данных dumbdbm создаются файлы с расширениями `.dat` и `.dir`.2829Необязательный аргумент *flag* в настоящее время игнорируется; база данных всегда открывается для обновления и будет создана, если она не существует.3031Необязательный аргумент *mode* – это режим файла Unix, используемый только при создании базы данных. По умолчанию это восьмеричное `0666` (и будет изменено текущей umask).3233Изменено в версии 2.2: Аргумент *mode* игнорировался в более ранних версиях.3435В дополнение к методам, похожим на словарные, объекты `dumbdm` предоставляют следующий метод:3637#### `dumbdbm.close()`3839Закрыть базу данных `dumbdm`.4041> **См. также**42>43> **Модуль [`anydbm`](https://python-all.ru/2.7/library/anydbm.html#module-anydbm)**44>45> Общий интерфейс для баз данных стиля `dbm`.46>47> **Модуль [`dbm`](https://python-all.ru/2.7/library/dbm.html#module-dbm)**48>49> Интерфейс, подобный библиотеке DBM/NDBM.50>51> **Модуль [`gdbm`](https://python-all.ru/2.7/library/gdbm.html#module-gdbm)**52>53> Интерфейс, аналогичный библиотеке GNU GDBM.54>55> **Модуль [`shelve`](https://python-all.ru/2.7/library/shelve.html#module-shelve)**56>57> Модуль персистентности, который хранит нестроковые данные.58>59> **Модуль [`whichdb`](https://python-all.ru/2.7/library/whichdb.html#module-whichdb)**60>61> Вспомогательный модуль для определения типа существующей базы данных.6263## 11.12.1. Объекты dumbdbm6465В дополнение к методам, предоставляемым классом [`UserDict.DictMixin`](https://python-all.ru/2.7/library/userdict.html#UserDict.DictMixin), объекты `dumbdbm` предоставляют следующие методы.6667#### `dumbdbm.sync()`6869Синхронизирует каталог и файлы данных на диске. Этот метод вызывается методом [`sync()`](https://python-all.ru/2.7/library/dumbdbm.html#dumbdbm.dumbdbm.sync) объектов `Shelve`.70