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

dbm.md

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

1> **Источник:** https://python-all.ru/2.7/library/dbm.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# 11.8. [`dbm`](https://python-all.ru/2.7/library/dbm.html#module-dbm) – Простой интерфейс «базы данных»89> **Примечание**10>11> Модуль [`dbm`](https://python-all.ru/2.7/library/dbm.html#module-dbm) был переименован в `dbm.ndbm` в Python 3. Инструмент [2to3](https://python-all.ru/2.7/glossary.html#term-2to3) автоматически адаптирует импорты при преобразовании исходных кодов в Python 3.1213Модуль [`dbm`](https://python-all.ru/2.7/library/dbm.html#module-dbm) предоставляет интерфейс к библиотеке Unix «(n)dbm». Объекты dbm ведут себя как отображения (словари), за исключением того, что ключи и значения всегда являются строками. При выводе объекта dbm ключи и значения не печатаются, а методы `items()` и `values()` не поддерживаются.1415Этот модуль можно использовать с «классическим» интерфейсом ndbm, интерфейсом совместимости BSD DB или интерфейсом совместимости GNU GDBM. В Unix сценарий **configure** попытается найти соответствующий заголовочный файл, чтобы упростить сборку этого модуля.1617Модуль определяет следующее:1819#### `exception dbm.error`2021Возникает при ошибках, специфичных для dbm, например, ошибках ввода-вывода. [`KeyError`](https://python-all.ru/2.7/library/exceptions.html#exceptions.KeyError) возникает при общих ошибках отображения, например, при указании неверного ключа.2223#### `dbm.library`2425Имя используемой библиотеки реализации `ndbm`.2627#### `dbm.open(filename[, flag[, mode]])`2829Открывает базу данных dbm и возвращает объект dbm. Аргумент *filename* – это имя файла базы данных (без расширений `.dir` или `.pag`; обратите внимание, что реализация интерфейса BSD DB добавляет расширение `.db` и создаёт только один файл).3031Необязательный аргумент *flag* должен быть одним из следующих значений:3233| Значение | Значение |34| --- | --- |35| `'r'` | Открыть существующую базу данных только для чтения (по умолчанию) |36| `'w'` | Открыть существующую базу данных для чтения и записи |37| `'c'` | Открыть базу данных для чтения и записи, создав её, если она не существует |38| `'n'` | Всегда создавать новую пустую базу данных, открытую для чтения и записи |3940Необязательный аргумент *mode* – это режим файла Unix, используемый только при создании базы данных. По умолчанию это восьмеричное `0666` (и будет изменено текущей umask).4142В дополнение к методам, похожим на словарные, объекты `dbm` предоставляют следующий метод:4344#### `dbm.close()`4546Закрыть базу данных `dbm`.4748> **См. также**49>50> **Модуль [`anydbm`](https://python-all.ru/2.7/library/anydbm.html#module-anydbm)**51>52> Общий интерфейс для баз данных стиля `dbm`.53>54> **Модуль [`gdbm`](https://python-all.ru/2.7/library/gdbm.html#module-gdbm)**55>56> Интерфейс, аналогичный библиотеке GNU GDBM.57>58> **Модуль [`whichdb`](https://python-all.ru/2.7/library/whichdb.html#module-whichdb)**59>60> Вспомогательный модуль для определения типа существующей базы данных.61