毎日ちょっとPython ~ 26日目 ~

ふぅ。ようやく半分くらい

shelveモジュールを用いて変数を保存する

Shelveモジュールを用いると、Pythonプログラム中の変数を、シェルフ(棚)というバイナリファイルとして保存することが可能。

ハードディスクに保zンしたデータは後で変数に復元することができるそうです。

例えばプログラムの設定パラメータを入力したら、シェルフファイルに保存しておき、次にプログラムを実行するときに読み込んで設定を復元することができます。

>>> import shelve
>>> shelf_file = shelve.open('mydata')
>>> cats = ['Zophie','Pooka','Simon']
>>> shelf_file['cats'] = cats
>>> shelf_file.close()

shelveモジュールはimportが必要。Windowsで前記のコードを実行すると、カレントディレクトリに、mydata.bak、mydata.data、mydata.dirの3つのファイルが作られます。

画像1

こんな感じで用意されました。shelveモジュールの機能を覚えておけば、このファイルがどんなものかを意識する必要なく使えるはずです(だそうです

取り出す場合もシェルフファイルは、書き込みモードと読み込みモードで開きなおす必要がなく、一度開けば読み書きできます。

>>> shelf_file = shelve.open('mydata')
>>> type(shelf_file)
<class 'shelve.DbfilenameShelf'>
>>> shelf_file['cats']
['Zophie', 'Pooka', 'Simon']
>>> shelf_file.close()

辞書と同様に、シェルフにもkeys() と value() メソッドがあり、シェルフに含まれるキーと値の並びを返してくれます。

これは真のリストではなくリスト風のオブジェクトなので、真のリストが必要ならlist()関数に渡す必要があります。

>>> shelf_file = shelve.open('mydata')
>>> list(shelf_file.keys())
['cats']
>>> list(shelf_file.values())
[['Zophie', 'Pooka', 'Simon']]
>>> shelf_file.close()

プレーンテキストはメモ帳やTextEditで読めるファイルを作るのにべんりですが、Pythonプログラムからデータを保存したいときにはshelveモジュールを使うのが便利です。

今日はここまで。

この記事が気に入ったらサポートをしてみませんか?