データを保存したり復元したりするためにpickleモジュールが使える。
保存
pickle.dump()でオブジェクトをファイルに保存できる。実際にはファイルでなくてもwriteメソッドをもつオブジェクトであればよい。
>>> import pickle
>>> l = [10, 20, 30]
>>> f = open("pickle.dump", "w")
>>> pickle.dump(l, f) # ファイルに保存
>>> f.close()
復元
pickle.load()でオブジェクトをファイルから復元できる。
>>> f = open("pickle.dump", "r")
>>> l2 = pickle.load(f) # ファイルから復元
>>> f.close()
>>> l2
[10, 20, 30]
ユーザー定義クラスの保存
>>> class Hoge: # Hogeクラスの定義
... def __init__(self):
... self.name = "john"
... self.age = 20
...
>>> hoge = Hoge()
>>> hoge.name
'john'
>>> hoge.name = "Smith"
>>> hoge.age = 30
>>> hoge.name
'Smith'
>>> hoge.age
30
>>> f = open("pickle.dump", "w")
>>> pickle.dump([10, 20, hoge], f) # Hogeインスタンスをリストの要素の一つとして保存
>>> f.close()
>>> f = open("pickle.dump", "r")
>>> l = pickle.load(f) # 復元
>>> f.close()
>>> l
[10, 20, <__main__.Hoge instance at 0x109e2b128>]
>>> l[2].name
'Smith'
>>> l[2].age
30