11.12. dumbdbm — 可搬性のある DBM 実装

注釈

dumbdbm モジュールは、Python 3 では dbm.dumb にリネームされました。 2to3 ツールが自動的にソースコードの import を修正します。

注釈

dumbdbm モジュールは、 anydbm が安定なモジュールを他に見つけることができなかった際の最後の手段とされています。 dumbdbm モジュールは速度を重視して書かれているわけではなく、他のデータベースモジュールのように重い使い方をするためのものではありません。

dumbdbm モジュールは永続的で辞書に類似したインタフェースを提供し、全て Python で書かれています。 gdbmbsddb といったモジュールと異なり、外部ライブラリは必要ありません。他の永続性マップ型のように、キーおよび値は常に文字列でなければなりません。

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

exception dumbdbm.error

I/O エラーのような dumbdbm 特有のエラーの際に送出されます。不正なキーを指定したときのような、一般的な対応付けエラーの際には KeyError が送出されます。

dumbdbm.open(filename[, flag[, mode]])

dumbdbm データベースを開き、 dubmdbm オブジェクトを返します。 filename 引数はデータベースファイル名のベース名 (特定の拡張子をもたないもの) です。dumbdbm データベースが生成される際、 .dat および .dir の拡張子を持ったファイルが生成されます。

オプションの flag 引数は現状では無視されます; データベースは常に更新のために開かれ、存在しない場合には新たに作成されます。

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

バージョン 2.2 で変更: mode 引数は以前のバージョンでは無視されます.

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

dumbdbm.close()

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

参考

anydbm モジュール
dbm スタイルの汎用的なインタフェース
dbm モジュール
DBM/NDBM ライブラリに対する同様のインタフェース。
gdbm モジュール
GNU GDBM ライブラリの類似したインタフェース
shelve モジュール
非文字列データを記録する永続化モジュール。
whichdb モジュール
既存のデータベースがどの形式のデータベースか判定するユーティリティモジュール。

11.12.1. Dumbdbm オブジェクト

UserDict.DictMixin クラスで提供されているメソッドに加え、 dumbdbm オブジェクトでは以下のメソッドを提供しています。

dumbdbm.sync()

ディスク上の辞書とデータファイルを同期します。このメソッドは Shelve オブジェクトの sync() メソッドから呼び出されます。