Python pickle ライブラリ完全ガイド
Python 標準ライブラリの pickle は、オブジェクトをシリアライズ(直列化)して保存し、後で復元するためのツールを提供します。本記事では、pickle の主要な機能とその活用方法について詳しく解説します。
1. pickle ライブラリの概要
pickleは、Python のオブジェクトをバイトストリームに変換し、ファイルやネットワーク経由で保存・送信するための標準ライブラリです。- 一度
pickleしたオブジェクトは、元の状態に復元(アンピクル)できます。 - ほとんどの Python オブジェクト(リスト、辞書、クラスのインスタンスなど)をシリアライズできます。
インストール方法
pickle は Python の標準ライブラリなので、追加のインストールは不要です。
import pickle
import pickle
data = {"name": "Alice", "age": 25, "city": "Tokyo"}
with open("data.pkl", "wb") as f:
pickle.dump(data, f)
import pickle
with open("data.pkl", "rb") as f:
loaded_data = pickle.load(f)
print(loaded_data)
import pickle
data = [1, 2, 3, 4, 5]
pickled_data = pickle.dumps(data)
restored_data = pickle.loads(pickled_data)
print(restored_data)
import pickle
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
person = Person("Bob", 30)
with open("person.pkl", "wb") as f:
pickle.dump(person, f)
with open("person.pkl", "rb") as f:
loaded_person = pickle.load(f)
print(loaded_person.name, loaded_person.age)
import pickle
data = {"language": "Python", "version": 3.9}
with open("data_protocol.pkl", "wb") as f:
pickle.dump(data, f, protocol=pickle.HIGHEST_PROTOCOL)
import pickle
numbers = [1, 2, 3, 4, 5]
with open("numbers.pkl", "wb") as f:
pickle.dump(numbers, f)
import pickle
config = {"debug": True, "theme": "dark"}
with open("config.pkl", "wb") as f:
pickle.dump(config, f)
import pickle
data1 = [10, 20, 30]
data2 = {"name": "Alice", "age": 25}
with open("multi.pkl", "wb") as f:
pickle.dump(data1, f)
pickle.dump(data2, f)
import pickle
with open("multi.pkl", "rb") as f:
data1 = pickle.load(f)
data2 = pickle.load(f)
print(data1, data2)
import pickle
obj1 = {"data": [1, 2, 3]}
obj2 = pickle.loads(pickle.dumps(obj1))
print(obj1 == obj2) # True
print(obj1 is obj2) # False(異なるオブジェクトだがデータは同じ)