TAKEO

TAKEO

Python Pickleの使い方

pickleとは

pickleはPythonオブジェクトをバイナリ化することができるツールです。また、バイナリ化したものをPythonオブジェクトに復元することができます。基本的な使い方は次の通りです。

ファイル書き込み・読み込み

バイナリ化したものをファイルに書き込んだり、バイナリファイルを読み込んでPythonオブジェクトに復元したりする時には、pickle.dumppickle.loadを使用します。

  • pickle.dumpでPythonオブジェクトをバイナリ化します。引数にオープン済みのファイルオブジェクトを指定します。
  • pickle.loadでバイナリからPythonオブジェクトに復元できます。引数にオープン済みのファイルオブジェクトを指定します。
example.py
Copied!!
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.dumpspickle.loadsを使います。

example.py
Copied!!
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のコピーである