Maison > Article > développement back-end > Comment enregistrer des objets en Python à l'aide de Pickle
Pickle fait partie de la bibliothèque Python par défaut et constitue un module important chaque fois que vous avez besoin de persistance entre les sessions utilisateur. En tant que module, pickle fournit des fonctionnalités permettant de sauvegarder des objets Python entre les processus.
Que vous programmiez pour une base de données, un jeu, un forum ou une autre application où des informations doivent être enregistrées entre les sessions, pickle permet d'enregistrer les identifiants et les paramètres. Le module pickle peut stocker des types de données tels que des valeurs booléennes, des chaînes et des tableaux d'octets, des listes, des dictionnaires, des fonctions, etc.
Remarque : le concept de cornichon est également connu sous le nom de sérialisation, marshaling et aplatissement. Cependant, la clé est toujours la même : enregistrez l'objet dans un fichier pour une récupération ultérieure. pickle y parvient en écrivant l'objet dans un long flux d'octets.
Exemple de code Pickle en Python
Pour écrire un objet dans un fichier, utilisez le code dans la syntaxe suivante :
import pickle object = Object() filehandler = open(filename, 'w') pickle.dump(object, filehandler)
Voici un exemple concret :
import pickle import math 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 dans le gestionnaire de fichiers file_pi, qui à son tour est lié au fichier filename_pi.obj dans le répertoire d'exécution.
Pour restaurer la valeur d'un objet en mémoire, chargez l'objet à partir d'un fichier. En supposant que le cornichon n'a pas été importé pour être utilisé, importez-le d'abord :
import pickle filehandler = open(filename, 'r') object = pickle.load(filehandler)
Le code suivant restaure la valeur de pi :
import pickle file_pi2 = open('filename_pi.obj', 'r') object_pi2 = pickle.load(file_pi2)
Ensuite, l'objet est à nouveau prêt à être utilisé, cette fois object_pi2. Bien entendu, vous pouvez réutiliser le nom d’origine si vous le souhaitez. Cet exemple utilise des noms différents pour plus de clarté.
À propos de Pickle
Veuillez garder les points suivants à l'esprit lorsque vous utilisez le module pickle :
Le protocole pickle est spécifique à Python - il n'est pas garanti qu'il soit multilingue compatible. Vous ne pourrez probablement pas transférer les informations pour les rendre utiles en Perl, PHP, Java ou d'autres langages.
La compatibilité n'est pas garantie 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. À moins que vous ne le modifiiez manuellement, cela reste ainsi.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!