11.6. anydbm — DBMスタイルのデータベースへの一般的なアクセス—Pythonドキュメント

提供:Dev Guides
< PythonPython/docs/2.7/library/anydbm
移動先:案内検索

11.6。 anydbm —DBMスタイルのデータベースへの一般的なアクセス

ノート

anydbm モジュールは、Python3で dbm に名前が変更されました。 2to3 ツールは、ソースをPython 3に変換するときに、インポートを自動的に適応させます。


anydbm は、DBMデータベースのバリアントへの汎用インターフェースです— dbhashbsddb が必要)、 gdbm 、または dbm [ X141X]。 これらのモジュールのいずれもインストールされていない場合は、モジュール dumbdbm の低速ですが単純な実装が使用されます。

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

データベースファイルファイル名を開き、対応するオブジェクトを返します。

データベースファイルがすでに存在する場合は、 whichdb モジュールを使用してそのタイプを判別し、適切なモジュールを使用します。 存在しない場合は、インポートできる上記の最初のモジュールが使用されます。

オプションの flag 引数は、次のいずれかの値である必要があります。

価値

意味

'r'

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

'w'

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

'c'

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

'n'

常に新しい空のデータベースを作成し、読み取りと書き込みのために開いてください

指定しない場合、デフォルト値は'r'です。

オプションの mode 引数は、ファイルのUnixモードであり、データベースを作成する必要がある場合にのみ使用されます。 デフォルトは8進数0666です(一般的なumaskによって変更されます)。

exception anydbm.error
サポートされている各モジュールで発生する可能性のある例外を含むタプル。最初の項目として anydbm.error という名前の一意の例外があります。後者は anydbm.error の場合に使用されます。発生します。

open()によって返されるオブジェクトは、辞書と同じ機能のほとんどをサポートします。 キーとそれに対応する値は、保存、取得、および削除でき、has_key()およびkeys()メソッドを使用できます。 キーと値は常に文字列である必要があります。

次の例では、いくつかのホスト名と対応するタイトルを記録してから、データベースの内容を出力します。

import anydbm

# Open database, creating it if necessary.
db = anydbm.open('cache', 'c')

# Record some values
db['www.python.org'] = 'Python Website'
db['www.cnn.com'] = 'Cable News Network'

# Loop through contents.  Other dictionary methods
# such as .keys(), .values() also work.
for k, v in db.iteritems():
    print k, '\t', v

# Storing a non-string key or value will raise an exception (most
# likely a TypeError).
db['www.yahoo.com'] = 4

# Close when done.
db.close()

辞書のようなメソッドに加えて、anydbmオブジェクトは次のメソッドを提供します。

anydbm.close()
anydbmデータベースを閉じます。

も参照してください

モジュール dbhash
BSD dbデータベースインターフェース。
モジュール dbm
標準のUnixデータベースインターフェイス。
モジュール dumbdbm
dbmインターフェースのポータブル実装。
モジュール gdbm
dbmインターフェースに基づくGNUデータベースインターフェース。
モジュールシェルフ
Python dbmインターフェースの上に構築された一般的なオブジェクトの永続性。
モジュール whichdb
既存のデータベースのタイプを判別するために使用されるユーティリティモジュール。