### ナビゲーション

- 索引
- モジュール |
- 次へ |
- 前へ |
- Python 2.7ja1 documentation »
- Python 標準ライブラリ »
- 11. データの永続化 »

# 11.8. `dbm` — UNIX dbmのシンプルなインタフェース

ノート

`dbm` モジュールは、Python 3.0では `dbm.ndbm` に変更されました。 2to3 ツールは、自動的に import を修正します。

`dbm` モジュールはUnixの”(n)dbm”ライブラリのインタフェースを提供します。 dbmオブジェクトは、キーと値が必ず文字列である以外は辞書オブジェクトのようなふるまいをします。 print文などでdbmインスタンスを出力してもキーと値は出力されません。また、 `items()` と `values()` メソッドはサポートされません。

このモジュールは、BSD DB、GNU GDBM互換インタフェースを持ったクラシックなndbmインタフェースを使うことができます。 Unix上のビルド時に configure スクリプトで適切なヘッダファイルが割り当られます。

以下はこのモジュールの定義:

exception `dbm.``error`

  I/Oエラーのようなdbm特有のエラーが起ったときに上げられる値です。また、正しくないキーが与えられた場合に通常のマッピングエラーのような `KeyError` が発生します。

`dbm.``library`

  `ndbm` が使用している実装ライブラリ名です。

`dbm.``open`(filename[, flag[, mode]])

  dbmデータベースを開いてdbmオブジェクトを返します。引数 filename はデータベースのファイル名を指定します。 (拡張子 `.dir` や `.pag` は付けません。また、BSD DBは拡張子 `.db` がついたファイルが一つ作成されます。)

  オプション引数 flag は次のような値を指定します:

  Value | Meaning
  --- | ---
  `'r'` | 存在するデータベースを読取り専用で開きます。(デフォルト)
  `'w'` | 存在するデータベースを読み書き可能な状態で開きます。
  `'c'` | データベースを読み書き可能な状態で開きます。また、データベースが存在しない場合は新たに作成します。
  `'n'` | 常に空のデータベースが作成され、読み書き可能な状態で開きます。

  オプション引数 mode はデータベース作成時に使用される Unixのファイルモードを指定します。デフォルトでは8進数の `0666` です。(この値はumaskによってマスクされます)

参考

Module `anydbm`
  `dbm` スタイルの一般的なインタフェース
Module `gdbm`
  GNU GDBMライブラリの類似したインタフェース
Module `whichdb`
  存在しているデータベースの形式を決めるためのユーティリティモジュール

### ナビゲーション

- 索引
- モジュール |
- 次へ |
- 前へ |
- Python 2.7ja1 documentation »
- Python 標準ライブラリ »
- 11. データの永続化 »