ライブラリ: shelve

Pythonの「shelve」というライブラリについてご紹介します。

import shelve

「shelve」は、Pythonオブジェクトをファイルに保存し永続化するためのライブラリです。簡易的なデータベースとして使うことができます。インタフェースが辞書型データと非常によく似ているため、シンプルに使うことができます。

ただ、個人的にはほとんど使ったことがないため細かいところがまだよくわかっていません。以下、今回調べた基本的な使い方だけ見てみます。

オブジェクトデータの保存

FILENAME = 'my.shelve'

d = shelve.open(FILENAME)
d['dogs'] = ['Taro']
d.close()

オブジェクトの保存は通常のファイルへの保存と同じように、open()とclose()の間に処理を書く形で行います。

openして得たshelveオブジェクトに、「キー&バリュー」の形でデータを与えます。ファイルが存在しない場合は新規に作成してくれます。

オブジェクトデータの読み込み

d = shelve.open(FILENAME)
print d  # {'dogs': ['Taro']}
print d['dogs']  # ['Taro']
print 'dogs' in d  # True
d.close()

shelveで保存したデータはopen()で読むことができます。shelveオブジェクトは辞書型のデータと同じように扱うことができます。

オブジェクトデータの追加

d = shelve.open(FILENAME)
dogs = d['dogs']
dogs.append('Pochi')
dogs.append('Jiro')
d['dogs'] = dogs
d.close()

d = shelve.open(FILENAME)
print d  # {'dogs': ['Taro', 'Pochi', 'Jiro']}
d.close()

バリューの部分をリストにした場合などにそのリストに要素を追加する場合には、いったんそのリストを取り出し、値を追加した後に元に戻します。

・・・以上です。

インストール 「shelve」は標準ライブラリに含まれているので、Pythonと別途インストールする必要はありません。

参考