Python Pickleの使い方
pickleとは
pickleはPythonオブジェクトをバイナリ化することができるツールです。また、バイナリ化したものをPythonオブジェクトに復元することができます。基本的な使い方は次の通りです。
ファイル書き込み・読み込み
バイナリ化したものをファイルに書き込んだり、バイナリファイルを読み込んでPythonオブジェクトに復元したりする時には、pickle.dump
とpickle.load
を使用します。
- pickle.dumpでPythonオブジェクトをバイナリ化します。引数にオープン済みのファイルオブジェクトを指定します。
- pickle.loadでバイナリからPythonオブジェクトに復元できます。引数にオープン済みのファイルオブジェクトを指定します。
example.pyCopied!!import pickle file_path = "test.pickle" data = {"key": "value", "hello": "world", "hoge": {"nested": "fuga"}} ## ファイル書き込み with open(file_path, "wb") as f: ## バイナリ化 pickle.dump(data, f) ## ファイル読み込み with open(file_path, "rb") as f: ## 復元化 new_data = pickle.load(f) print(data == new_data) # True print(data is new_data) # False:new_dataはdataのコピーである
dumps・loadsの使い方
バイナリ化したものをファイルに書き込まずに、bytes
オブジェクトとして受取りたい時やその逆の操作にはpickle.dumps、pickle.loadsを使います。
example.pyCopied!!import pickle data = {"key": "value", "hello": "world", "hoge": {"nested": "fuga"}} bin_data = pickle.dumps(data) print(type(bin_data)) # <class 'bytes'> new_data = pickle.loads(bin_data) print(data == new_data) # True print(data is new_data) # False:new_dataはdataのコピーである