objectif
Sauvegarder/restaurer des objets Python pour un usage local et maîtrisé.
code minimal
import pickle
data = {"x": 1}
blob = pickle.dumps(data, protocol=pickle.HIGHEST_PROTOCOL)
back = pickle.loads(blob)
print(back["x"] == 1) # attendu: True
utilisation
import pickle, tempfile, pathlib
with tempfile.TemporaryDirectory() as tmp:
p = pathlib.Path(tmp) / "obj.pkl"
p.write_bytes(pickle.dumps([1,2,3]))
obj = pickle.loads(p.read_bytes())
print(sum(obj) == 6)
variante(s) utile(s)
import pickle
class C:
def __init__(self, v): self.v = v
print(isinstance(pickle.loads(pickle.dumps(C(1))).v, int))
notes
- pickle exécute du code lors de loads -> n’alimentez JAMAIS avec des données non fiables.
- Préférez JSON ou formats sûrs pour des échanges externes.