Pickle, qui fait partie de la bibliothèque Python par défaut, est un module important chaque fois que vous avez besoin de persistance entre les sessions utilisateur. En tant que module, pickle prévoit la sauvegarde d'objets Python entre les processus.
Que vous programmiez pour un base de données, jeu, forum ou toute autre application qui doit enregistrer des informations entre les sessions, pickle est utile pour enregistrer les identifiants et les paramètres. Le module pickle peut stocker des éléments tels que des types de données tels que des booléens, des chaînes et des tableaux d'octets, des listes, des dictionnaires, des fonctions, etc.
Remarque: Le concept de décapage est également connu sous le nom de sérialisation, marshaling et aplatissement. Cependant, le point est toujours le même: enregistrer un objet dans un fichier pour une récupération ultérieure. Le décapage accomplit cela en écrivant l'objet comme un long flux d'octets.
Exemple de code Pickle en Python
Pour écrire un objet dans un fichier, vous utilisez un code dans la syntaxe suivante:
cornichon d'importation
object = Object ()
filehandler = open (nom de fichier, 'w')
pickle.dump (objet, gestionnaire de fichiers)
Voici à quoi ressemble un exemple réel:
cornichon d'importation
importer des mathématiques
object_pi = math.pi
file_pi = open ('filename_pi.obj', 'w')
pickle.dump (object_pi, file_pi)
Cet extrait écrit le contenu de object_pi au dossier gestionnaire file_pi, qui à son tour est lié au fichier filename_pi.obj dans le répertoire d'exécution.
Pour restaurer la valeur de l'objet en mémoire, chargez l'objet à partir du fichier. En supposant que le cornichon n'a pas encore été importé pour être utilisé, commencez par l'importer:
cornichon d'importation
filehandler = open (nom de fichier, 'r')
object = pickle.load (gestionnaire de fichiers)
Le code suivant restaure la valeur de pi:
cornichon d'importation
file_pi2 = open ('filename_pi.obj', 'r')
object_pi2 = pickle.load (file_pi2)
L'objet est alors de nouveau prêt à l'emploi, cette fois comme object_pi2. Vous pouvez, bien sûr, réutiliser les noms originaux, si vous préférez. Cet exemple utilise des noms distincts pour plus de clarté.
Choses à retenir sur Pickle
Gardez ces choses à l'esprit lorsque vous utilisez le module de cornichon:
- Le protocole pickle est spécifique à Python - il n'est pas garanti d'être compatible avec plusieurs langues. Vous ne pouvez probablement pas transférer les informations pour les rendre utiles en Perl, PHP, Java ou dans d'autres langages.
- Il n'y a également aucune garantie de compatibilité entre les différentes versions de Python. L'incompatibilité existe car toutes les structures de données Python ne peuvent pas être sérialisées par le module.
- Par défaut, la dernière version du protocole pickle est utilisée. Il en est ainsi sauf si vous le modifiez manuellement.
Pointe: Découvrez aussi comment utiliser Shelve pour enregistrer des objets en Python pour une autre méthode de maintien de la continuité des objets.