11.8. "dbm" --- UNIX dbmのシンプルなインタフェース
**************************************************

注釈: "dbm" モジュールは、Python 3 では "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* は以下の値のいずれかです:

   +-----------+---------------------------------------------+
   | "値"      | 意味                                        |
   +===========+=============================================+
   | "'r'"     | 既存のデータベースを読み込み専用で開く (デ  |
   |           | フォルト)                                   |
   +-----------+---------------------------------------------+
   | "'w'"     | 既存のデータベースを読み書き用に開く        |
   +-----------+---------------------------------------------+
   | "'c'"     | データベースを読み書き用に開く。ただし存在  |
   |           | しない場合には新たに作成 する               |
   +-----------+---------------------------------------------+
   | "'n'"     | 常に新たに読み書き用の新規のデータベースを  |
   |           | 作成する                                    |
   +-----------+---------------------------------------------+

   オプションの *mode* 引数は、新たにデータベースを作成しなければなら
   ない場合に使われる Unix のファイルモードです。標準の値は 8 進数の
   "0666" です (この値は現在有効な umask で修飾されます)。

   辞書型形式のメソッドに加えて、"dbm" オブジェクトには以下のメソッド
   があります:

   dbm.close()

      "dbm" データベースをクローズします。

参考:

  "anydbm" モジュール
     "dbm" スタイルの汎用的なインタフェース

  "gdbm" モジュール
     GNU GDBM ライブラリに対する同様のインタフェース。

  "whichdb" モジュール
     既存のデータベースがどの形式のデータベースか判定するユーティリテ
     ィモジュール。
