11.10. dbhash
--- BSD データベースライブラリへの DBM 形式のインタフェース¶
バージョン 2.6 で非推奨: dbhash
モジュールは Python 3 で削除されました。
dbhash
モジュールでは BSD db
ライブラリを使ってデータベースを開くための関数を提供します。このモジュールは、 DBM 形式のデータベースへのアクセスを提供する他の Python データベースモジュールのインタフェースをそのまま反映しています。 dbhash
を使うには bsddb
モジュールが必要です。
このモジュールは 1 つの例外と 1 つの関数を提供しています:
-
dbhash.
open
(path[, flag[, mode]])¶ データベース
db
を開き、データベースオブジェクトを返します。引数 path はデータベースファイルの名前です。flag 引数は、次のいずれかの値になります:
値
意味
'r'
既存のデータベースを読み込み専用で開く (デフォルト)
'w'
既存のデータベースを読み書き用に開く
'c'
データベースを読み書き用に開く。ただし存在しない場合には新たに作成する
'n'
常に新たに読み書き用の新規のデータベースを作成する
BSD
db
ライブラリがロックをサポートしているプラットフォームでは、 flag に'l'
を追加して、ロックを利用することを指定できます。オプションの mode 引数は、新たにデータベースを作成しなければならないときにデータベースファイルに設定すべき Unix ファイル権限ビットを表すために使われます; この値はプロセスの現在の umask 値でマスクされます。
参考
11.10.1. データベースオブジェクト¶
open()
によって返されるデータベースオブジェクトは、全ての DBM 形式データベースやマップ型オブジェクトで共通のメソッドを提供します。それら標準のメソッドに加えて、以下のメソッドが利用可能です。
-
dbhash.
first
()¶ このメソッドと
next()
メソッドを使って、データベースの全てのキー/値のペアにわたってループ処理を行えます。探索はデータベースの内部ハッシュ値の順番に行われ、キーの値に順に並んでいるとは限りません。このメソッドは最初のキーを返します。
-
dbhash.
last
()¶ データベース探索における最後のキー/値を返します。逆順探索を開始する際に使うことができます;
previous()
を参照してください。
-
dbhash.
next
()¶ データベースの順方向探索において、次のキー/値のペアを返します。以下のコードはデータベース
db
について、キー全てを含むリストをメモリ上に生成することなく全てのキーを出力します。print db.first() for i in xrange(1, len(db)): print db.next()
-
dbhash.
sync
()¶ このメソッドはディスクにまだ書き込まれていないデータを全て書き込ませます。