Exemple de Pickle en Python
Dans ce tutoriel, nous allons parler de l'exemple de Python Pickle. Dans notre précédent tutoriel, nous avons discuté de la multiprocessation en Python.
Sérialisation Python
Python Pickle est utilisé pour sérialiser et désérialiser une structure d'objet python. Tout objet en python peut être « picklé » afin qu'il puisse être enregistré sur le disque. Au début, Python pickle sérialise l'objet puis le convertit en un flux de caractères afin que ce flux de caractères contienne toutes les informations nécessaires pour reconstruire l'objet dans un autre script python. Notez que le module pickle n'est pas sécurisé contre des données erronées ou malicieusement construites selon la documentation. Par conséquent, ne dépicklez jamais des données reçues d'une source non fiable ou non authentifiée.
Sérialisation Python Pickle
Dans cette section, nous allons apprendre comment stocker des données en utilisant Python pickle. Pour ce faire, nous devons d'abord importer le module pickle. Ensuite, utilisez la fonction pickle.dump() pour stocker les données de l'objet dans le fichier. La fonction pickle.dump() prend 3 arguments. Le premier argument est l'objet que vous souhaitez stocker. Le deuxième argument est l'objet fichier que vous obtenez en ouvrant le fichier souhaité en mode write-binary (wb). Et le troisième argument est l'argument clé-valeur. Cet argument définit le protocole. Il existe deux types de protocoles - pickle.HIGHEST_PROTOCOL et pickle.DEFAULT_PROTOCOL. Voir le code exemple pour savoir comment décharger des données en utilisant pickle.
import pickle
take user input to take the amount of data
number_of_data = int(input('Enter the number of data : '))
data = []
take input of the data
for i in range(number_of_data):
raw = input('Enter data '+str(i)+' : ')
data.append(raw)
open a file, where you ant to store the data
file = open('important', 'wb')
dump information to that file
pickle.dump(data, file)
close the file
file.close()
Le programme suivant vous demandera de saisir quelques données. Dans mon cas, c'était comme ça.
Chargement de Pickle en Python
Pour récupérer des données sérialisées, les étapes sont assez simples. Vous devez utiliser la fonction pickle.load() pour cela. L'argument principal de la fonction de chargement pickle est l'objet fichier que vous obtenez en ouvrant le fichier en mode lecture-binaire (rb). Simple ! N'est-ce pas ? Écrivons le code pour récupérer les données que nous avons sérialisées en utilisant le code de décharge pickle. Voir le code suivant pour comprendre.
import pickle
open a file, where you stored the pickled data
file = open('important', 'rb')
dump information to that file
data = pickle.load(file)
close the file
file.close()
print('Showing the pickled data:')
cnt = 0
for item in data:
print('The data ', cnt, ' is : ', item)
cnt += 1
La sortie sera la suivante :
Showing the pickled data:
The data 0 is : 123
The data 1 is : abc
The data 2 is : !@#$
Exemple de Pickle en Python
J'ai réalisé une courte vidéo montrant l'exécution d'exemples de programmes Python Pickle - d'abord pour stocker des données dans un fichier, puis pour les charger et les imprimer.
Remarques importantes sur le Pickle en Python
Quelques points importants sur le module pickle de Python sont :
- Le protocole pickle est spécifique à Python - il n'est pas garanti d'être compatible entre les langages. Cela signifie que vous ne pouvez probablement pas transférer les informations pour les rendre utiles dans d'autres langages de programmation.
- Il n'y a également aucune garantie de compatibilité entre les différentes versions de Python car toutes les structures de données Python ne peuvent pas être sérialisées par le module.
- La dernière version du protocole pickle est utilisée par défaut, à moins que vous ne la changiez manuellement.
- Dernier point mais non des moindres, le module pickle n'est pas sécurisé contre les données erronées ou malicieusement construites selon la documentation.
Voilà, c'est tout pour l'exemple de pickle en python. J'espère que vous avez bien compris. Pour toute question supplémentaire, veuillez utiliser la section des commentaires. :) Référence : Documentation officielle.


