shelveは、「ディクショナリ」と同じ使い勝手を持つデータベースです。
簡易的なデータベースになります。
has_key や setdefault などといったメソッドもディクショナリのときと同じように使え、それらを用いて色々処理するということもできます。
キーの一覧を keys を使って取得もできます。
ファイル(データベース)に残る、という特徴以外は、ディクショナリと同じです。
import shelve
a = shelve.open('database') #---shelve.open関数を実行してその結果を a に代入
a['name'] = 'Yamada taro'
print a['name'] #---'Yamada taro'を表示
スクリプトが正常に実行できたら、同ディレクトリ内に database という名前のファイルができます。
これがshelveデータベースのファイルになります。
shelve.open 関数の引数で、使うデータベースを指定します。
すでにこのデータベースがあればそれを使うが、なかった場合は自動的に新しく作成します。
● 同ディレクトリ内にできるファイル
database.dat
database.dir
このファイルは、pythonのshelveモジュールでしか使えない、専用の形式で作られています。
このファイル(データベース)が同ディレクトリ内に残っていれば、python を終了しても、次にpythonを実行しなおしたときにキーを使って値を呼び出すことができます。
import shelve
a = shelve.open('database') #---shelve.open関数を実行してその結果を s に代入
print a['name'] #---'Yamada taro'を表示
キーに対応する値がないときは、ディクショナリと同じように KeyError という例外が発生する。