In deze tutorial zullen we het hebben over Python Pickle Voorbeeld. In onze vorige tutorial hebben we gesproken over Python Multiprocessing.
Python Pickle
Python Pickle wordt gebruikt om een Python-objectstructuur te serialiseren
en deserialiseren
. Elk object in Python kan worden ge-pickled zodat het op schijf kan worden opgeslagen. Python pickle serialiseert eerst het object en zet het dan om in een karakterstroom zodat deze karakterstroom alle informatie bevat die nodig is om het object te reconstrueren in een ander Python-script. Merk op dat de pickle-module volgens de documentatie niet veilig is tegen foutieve of kwaadwillig geconstrueerde gegevens. Dus, unpickle nooit gegevens die zijn ontvangen van een niet-vertrouwde of niet-geauthenticeerde bron.
Python Pickle dump
In deze sectie gaan we leren hoe we gegevens kunnen opslaan met behulp van Python pickle. Om dit te doen, moeten we eerst de pickle-module importeren. Gebruik vervolgens de functie pickle.dump()
om de objectgegevens naar het bestand op te slaan. De functie pickle.dump()
neemt 3 argumenten. Het eerste argument is het object dat je wilt opslaan. Het tweede argument is het bestandsobject dat je krijgt door het gewenste bestand te openen in de modus write-binary
(wb). En het derde argument is het sleutel-waarde argument. Dit argument definieert het protocol. Er zijn twee soorten protocol – pickle.HIGHEST_PROTOCOL en pickle.DEFAULT_PROTOCOL. Bekijk de voorbeeldcode om te zien hoe je gegevens kunt dumpen met pickle.
import pickle
# neem gebruikersinvoer om de hoeveelheid gegevens te nemen
number_of_data = int(input('Enter the number of data : '))
data = []
# neem invoer van de gegevens
for i in range(number_of_data):
raw = input('Enter data '+str(i)+' : ')
data.append(raw)
# open een bestand waarin je de gegevens wilt opslaan
file = open('important', 'wb')
# dump informatie naar dat bestand
pickle.dump(data, file)
# sluit het bestand
file.close()
Het volgende programma zal u vragen om wat invoer in te voeren. In mijn geval was het als volgt.
Python Pickle laden
Om ingemaakte gegevens op te halen, zijn de stappen vrij eenvoudig. Je moet de functie pickle.load()
gebruiken om dat te doen. Het primaire argument van de pickle load-functie is het bestandsobject dat je krijgt door het bestand te openen in de lees-binaire (rb) modus. Simpel! Nietwaar. Laten we de code schrijven om gegevens op te halen die we hebben ingemaakt met de pickle dump-code. Zie de volgende code voor begrip.
import pickle
# open een bestand waarin je de ingemaakte gegevens hebt opgeslagen
file = open('important', 'rb')
# informatie in dat bestand dumpen
data = pickle.load(file)
# het bestand sluiten
file.close()
print('Showing the pickled data:')
cnt = 0
for item in data:
print('The data ', cnt, ' is : ', item)
cnt += 1
De uitvoer zal als volgt zijn:
Showing the pickled data:
The data 0 is : 123
The data 1 is : abc
The data 2 is : !@#$
Python Pickle Voorbeeld
I made a short video showing execution of python pickle example programs – first to store data into file and then to load and print it. As you can see that the file created by python pickle dump is a binary file and shows garbage characters in the text editor.
Belangrijke notities over Python Pickle
Enkele belangrijke punten over de Python pickle-module zijn:
- Het pickle-protocol is specifiek voor Python – het is niet gegarandeerd compatibel met andere programmeertalen. Dit betekent dat je de informatie waarschijnlijk niet kunt overdragen om deze nuttig te maken in andere programmeertalen.
- Er is ook geen garantie op compatibiliteit tussen verschillende versies van Python omdat niet elke Python-datatstructuur kan worden geserialiseerd door de module.
- De nieuwste versie van het pickle-protocol wordt standaard gebruikt, tenzij je het handmatig wijzigt.
- Als laatste, de pickle module is niet veilig tegen foutieve of kwaadaardig geconstrueerde gegevens volgens de documentatie.
Dus, dat is alles over het python pickle voorbeeld. Hopelijk begrijp je het goed. Voor verdere vragen gebruik alsjeblieft de opmerkingensectie. 🙂 Referentie: Officiële Documentatie
Source:
https://www.digitalocean.com/community/tutorials/python-pickle-example