前のトピックへ

11.7. whichdb — どのDBMモジュールがデータベースを作ったかを推測する

次のトピックへ

11.9. gdbm — GNU による dbm の再実装

このページ

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
存在しているデータベースの形式を決めるためのユーティリティモジュール