目次

前のトピックへ

12.11. bsddb — Berkeley DB ライブラリへのインタフェース

次のトピックへ

12.13. sqlite3 — SQLite データベースに対する DB-API 2.0 インタフェース

このページ

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

ノート

dumbdbm モジュールは、 Python 3.0 では 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 引数は以前のバージョンでは無視されます.

参考

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

12.12.1. Dumbdbm オブジェクト

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

dumbdbm.sync()

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