In diesem Tutorial werden wir über das Python Pickle-Beispiel sprechen. In unserem vorherigen Tutorial haben wir über Python Multiprocessing diskutiert.
Python Pickle
Python Pickle wird verwendet, um eine Python-Objektstruktur zu serialisieren
und deserialisieren
. Jedes Objekt in Python kann gepickelt werden, damit es auf der Festplatte gespeichert werden kann. Zuerst serialisiert Python Pickle das Objekt und wandelt es dann in einen Zeichenstrom um, sodass dieser Zeichenstrom alle Informationen enthält, die zum Rekonstruieren des Objekts in einem anderen Python-Skript erforderlich sind. Beachten Sie, dass das Pickle-Modul gemäß der Dokumentation nicht sicher gegen fehlerhafte oder bösartig konstruierte Daten ist. Entpickeln Sie daher niemals Daten, die von einer nicht vertrauenswürdigen oder nicht authentifizierten Quelle stammen.
Python Pickle dump
In diesem Abschnitt werden wir lernen, wie man Daten mithilfe von Python Pickle speichert. Dazu müssen wir zuerst das Pickle-Modul importieren. Verwenden Sie dann die Funktion pickle.dump()
, um die Objektdaten in die Datei zu speichern. Die Funktion pickle.dump()
hat 3 Argumente. Das erste Argument ist das Objekt, das Sie speichern möchten. Das zweite Argument ist das Dateiobjekt, das Sie erhalten, indem Sie die gewünschte Datei im Modus write-binary
(wb) öffnen. Und das dritte Argument ist das Schlüssel-Wert-Argument. Dieses Argument definiert das Protokoll. Es gibt zwei Arten von Protokollen – pickle.HIGHEST_PROTOCOL und pickle.DEFAULT_PROTOCOL. Sehen Sie sich den Beispielcode an, um zu erfahren, wie man Daten mithilfe von Pickle speichert.
import pickle
# Benutzereingabe, um die Menge der Daten zu erhalten
number_of_data = int(input('Enter the number of data : '))
data = []
# Eingabe der Daten
for i in range(number_of_data):
raw = input('Enter data '+str(i)+' : ')
data.append(raw)
# Öffnen Sie eine Datei, in der Sie die Daten speichern möchten
file = open('important', 'wb')
# Informationen in diese Datei schreiben
pickle.dump(data, file)
# Datei schließen
file.close()
Das folgende Programm wird Sie auffordern, eine Eingabe einzugeben. In meinem Fall sah es so aus.
Python Pickle laden
Um auf gepickelte Daten zuzugreifen, sind die Schritte ziemlich einfach. Sie müssen die Funktion pickle.load()
verwenden, um dies zu tun. Das primäre Argument der Pickle-Ladefunktion ist das Dateiobjekt, das Sie erhalten, indem Sie die Datei im Lese-Binärmodus (rb) öffnen. Einfach! Nicht wahr? Lassen Sie uns den Code schreiben, um Daten abzurufen, die wir mit dem Pickle-Dump-Code gepickelt haben. Siehe folgenden Code zum Verständnis.
import pickle
# Öffnen Sie eine Datei, in der Sie die gepickelten Daten gespeichert haben
file = open('important', 'rb')
# Informationen in diese Datei schreiben
data = pickle.load(file)
# Datei schließen
file.close()
print('Showing the pickled data:')
cnt = 0
for item in data:
print('The data ', cnt, ' is : ', item)
cnt += 1
Die Ausgabe wird wie folgt sein:
Showing the pickled data:
The data 0 is : 123
The data 1 is : abc
The data 2 is : !@#$
Python Pickle Beispiel
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.
Wichtige Hinweise zu Python Pickle
Einige wichtige Punkte zum Python-Pickle-Modul sind:
- Das Pickle-Protokoll ist spezifisch für Python – es ist nicht garantiert, dass es plattformübergreifend kompatibel ist. Dies bedeutet, dass Sie die Informationen höchstwahrscheinlich nicht übertragen können, um sie in anderen Programmiersprachen nützlich zu machen.
- Es gibt auch keine Garantie für die Kompatibilität zwischen verschiedenen Versionen von Python, da nicht jede Python-Datenstruktur durch das Modul serialisiert werden kann.
- Die neueste Version des Pickle-Protokolls wird standardmäßig verwendet, es sei denn, Sie ändern es manuell.
- Zu guter Letzt ist das pickle-Modul gemäß der Dokumentation nicht sicher gegen fehlerhafte oder bösartig konstruierte Daten.
Das war also alles zum Python-Pickle-Beispiel. Hoffentlich haben Sie alles verstanden. Bei weiteren Fragen nutzen Sie bitte den Kommentarbereich. 🙂 Referenz: Offizielle Dokumentation
Source:
https://www.digitalocean.com/community/tutorials/python-pickle-example