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 モジュール

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