Pythonデータの永続性-dbmパッケージ

dbmパッケージは、インターフェイスDBMスタイルのデータベースのような辞書を提供します。 DBM stands for DataBase Manager。これは、UNIX(およびUNIXライクな)オペレーティングシステムによって使用されます。dbbmライブラリは、KenThompsonによって作成された単純なデータベースエンジンです。これらのデータベースは、バイナリエンコードされた文字列オブジェクトをキーおよび値として使用します。

データベースは、単一のキー(主キー)を使用して固定サイズのバケットにデータを格納し、ハッシュ技術を使用してキーによるデータの高速取得を可能にします。

dbmパッケージには、次のモジュールが含まれています-

  • dbm.gnu モジュールは、GNUプロジェクトによって実装されたDBMライブラリバージョンへのインターフェイスです。

  • dbm.ndbm モジュールは、UNIXnbdm実装へのインターフェースを提供します。

  • dbm.dumbイベントのフォールバックオプションとして使用され、他のdbm実装が見つかりません。これには外部依存関係は必要ありませんが、他の依存関係よりも遅くなります。

>>> dbm.whichdb('mydbm.db')
'dbm.dumb'
>>> import dbm
>>> db=dbm.open('mydbm.db','n')
>>> db['name']=Raj Deshmane'
>>> db['address']='Kirtinagar Pune'
>>> db['PIN']='431101'
>>> db.close()

open()関数は、これらのフラグのモードを許可します-

シニア番号 価値と意味
1

'r'

読み取り専用で既存のデータベースを開く(デフォルト)

2

'w'

読み取りと書き込みのために既存のデータベースを開く

3

'c'

読み取りと書き込み用にデータベースを開き、データベースが存在しない場合は作成します

4

'n'

常に新しい空のデータベースを作成し、読み取りと書き込み用に開きます

dbmオブジェクトは、シェルフオブジェクトと同様に、オブジェクトのような辞書です。したがって、すべての辞書操作を実行できます。dbmオブジェクトは、get()、pop()、append()、およびupdate()メソッドを呼び出すことができます。次のコードは、「r」フラグを指定して「mydbm.db」を開き、キーと値のペアのコレクションを繰り返し処理します。

>>> db=dbm.open('mydbm.db','r')
>>> for k,v in db.items():
   print (k,v)
b'name' : b'Raj Deshmane'
b'address' : b'Kirtinagar Pune'
b'PIN' : b'431101'