3.10 標準モジュール shelve

 

``shelf''は永続的であり、ディクショナリのようなオブジェクトです。 ``dbm''データベースとの違いは、shelfにおける値(キーではない!)は 全てのパイソンオブジェクトであるということです。 これには、ほとんどのクラスインスタンス、recursiveなデータタイプ、 たくさんのサブオブジェクトをもつオブジェクトも含まれます。 値のキーは、通常文字列です。  

インターフェース概要 (keyが文字列で, data が全てのオブジェクトである場合)

import shelve

d = shelve.open(filename) # 指定したファイル名(拡張子なし)の(g)dbmファイルをオープンする

d[key] = data   # キーによりデータを保存する(既に存在するキーの場合は
                # オーバーライドする
data = d[key]   # キーによりデータを取り出す(該当するキーがない場合は
                # KeyError となる)
del d[key]      # キーによりデータを削除する(該当するキーがない場合は
                # KeyError となる)
flag = d.has_key(key)   # キーが存在する場合は真
list = d.keys() # 存在する全てのキーのリスト(遅い!)

d.close()       # クローズする
制限:

guido@python.org