Charger un objet avec pickle
Avec pickle, vous pouvez désérialiser un objet précédemment sauvegardé (convertir le format binaire en un objet Python original) en utilisant la fonction pickle.load(). Cela permet de récupérer un objet Python depuis un fichier et de l’utiliser dans votre programme. Cela est utile pour restaurer des objets comme des modèles, des configurations ou d’autres données enregistrées.
Fonctions :
-
Charger un objet avec pickle
Le module pickle permet également de désérialiser un objet, c'est-à-dire de reconstruire l'objet Python à partir d'un fichier binaire qui a été précédemment sérialisé. Une fois désérialisé, l'objet peut être utilisé comme s'il avait été créé normalement dans le code.
Importation :
import pickle
Attributs :
Paramètre Type Description Valeur par défaut file
file-like object Le chemin du fichier contenant l'objet sérialisé (ouvert en mode binaire 'rb'
).None
obj
object L'objet Python récupéré après désérialisation. None
pickle.load()
function Fonction qui lit et désérialise l'objet depuis le fichier. None
Exemple de code :
import pickle # Chargement de l'objet depuis un fichier with open('objet.pkl', 'rb') as f: obj = pickle.load(f) print(obj)
Explication du code :
with open('objet.pkl', 'rb') as f:
: Ouvre le fichierobjet.pkl
en mode lecture binaire (rb
).obj = pickle.load(f)
: Charge et désérialise l'objet à partir du fichierf
. L'objet récupéré est exactement celui qui avait été sérialisé précédemment.print(obj)
: Affiche l'objet chargé pour vérifier son contenu.
Remarques
-
Dépendance du format : Le fichier doit être dans le format binaire créé avec
pickle.dump()
. Si tu utilises un autre format ou un autre type de sérialisation (comme JSON), cela ne fonctionnera pas. -
Sécurité : Ne jamais désérialiser un fichier
pickle
provenant d'une source non fiable, car cela pourrait exécuter du code malveillant. -
Compatibilité : Si tu ouvres un fichier
pickle
sérialisé avec une version plus récente de Python dans une version antérieure, cela pourrait échouer. Il est donc recommandé d'utiliser une version depickle
compatible lors de la sérialisation et de la désérialisation.