データを保存したり復元したりするために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
参考
11.1. pickle — Python オブジェクトの整列化 — Python 2.7ja1 documentation