Gurken-Eigenschaften:
- Es wurde hauptsächlich für Python-Skripte entwickelt.
- Es wird zum Speichern der Python-Objekte zwischen den Prozessen verwendet.
- Es verfolgt alle serialisierten Objekte und das Objekt, das zuvor serialisiert wurde, wird nicht erneut serialisiert.
- Es kann Klasseninstanzen transparent speichern und wiederherstellen.
- Die Verwendung ist nicht sicher. Daher ist es nicht besser, Daten aus einer unbekannten Quelle zu entpicken.
dump() für die Serialisierung:
Die Funktion dump() wird verwendet, um die Objektdaten in einen Zeichenstrom zu konvertieren, bevor sie in einer Datei gespeichert werden. Diese Funktion kann drei Argumente annehmen. Die ersten beiden Argumente sind obligatorisch und das letzte Argument ist optional. Das erste Argument nimmt ein Datenobjekt an, das serialisiert werden muss. Das zweite Argument verwendet das Dateibehandlungsobjekt der Datei, in der die eingelesenen Daten gespeichert werden. Das letzte Argument übernimmt den Protokollnamen.
Syntax:
entsorgen(data_object,file_object, [Protokoll])
load() zur Deserialisierung:
Die Funktion load() wird verwendet, um Zeichenstromdaten aus der Datei in ein Python-Objekt zu konvertieren. Diese Funktion enthält nur ein Argument und das Dateibehandlungsobjekt von Dateiübergaben als Argumentwert, von dem die Daten abgerufen werden.
Syntax:
Belastung(file_object)
Pickle ein einfaches Objekt zum Speichern in einer Datei
Erstellen Sie eine Datei mit dem Namen pickle1.py mit dem folgenden Python-Skript. Im folgenden Skript wird ein Datenobjekt namens dataObject wird deklariert, um fünf Sprachnamen zu speichern, indem die for-Schleife iteriert wird. Als nächstes wird die Methode open() verwendet, um einen Dateihandler zum Erstellen einer Binärdatei mit dem Namen zuzuweisen Sprachen. entsorgen() Funktion wird hier verwendet, um die Daten von zu serialisieren dataObject und speichern Sie es in der Sprachen Datei. Wenn die Serialisierung ordnungsgemäß durchgeführt wird, wird die Meldung Data is serialized (Daten werden serialisiert) gedruckt.
# Importieren Sie das Gurkenmodulimportieren Essiggurke
# Deklarieren Sie das Objekt zum Speichern von Daten
dataObject= []
# Wiederhole die for-Schleife 5 Mal und nimm Sprachnamen
zumnin Bereich(5):
roh= Eingang('Geben Sie einen Sprachnamen ein:')
dataObject.anhängen(roh)
# Öffnen Sie eine Datei zum Schreiben von Daten
file_handler= offen('Sprachen', 'wb')
# Dump die Daten des Objekts in die Datei
Essiggurke.entsorgen(dataObject,file_handler)
# den Dateihandler schließen, um die Ressourcen freizugeben
file_handler.nah dran()
# Nachricht drucken
drucken('Daten werden serialisiert')
Ausgabe:
Nach der Ausführung des Skripts werden fünf Sprachnamen als Eingabe benötigt.
Daten aus einer Datei aufheben
Das Entbeizen der Daten ist das Gegenteil des Beizens von Daten. Erstellen Sie eine Datei mit dem Namen pickle2.py mit dem folgenden Python-Skript. Hier, offen() -Methode wird verwendet, um die Binärdatei namens . zu öffnen Sprachen , erstellt im vorherigen Beispiel. Belastung() Funktion wird verwendet, um die Daten aus der Datei zu entpicken und in der Variablen zu speichern dataObject . Nächste, zum Schleife wird verwendet, iteriert die Daten aus dem dataObject und im Terminal ausdrucken.
# Importieren Sie das Gurkenmodulimportieren Essiggurke
# Öffnen Sie einen Dateihandler zum Lesen einer Datei, aus der die Daten geladen werden
file_handler= offen('Sprachen', 'rb')
# Laden Sie die Daten aus der Datei nach der Deserialisierung
dataObject= Essiggurke.Belastung(file_handler)
# Schließen Sie den Dateihandler
file_handler.nah dran()
# Nachricht drucken
drucken('Daten nach Deserialisierung')
# Iterieren Sie die Schleife, um die Daten nach der Deserialisierung zu drucken
zumStdinDatenobjekt:
drucken('Der Datenwert: ',Std)
Ausgabe:
Die folgende Ausgabe wird angezeigt, nachdem das Skript ausgeführt wurde.
Pickle ein Klassenobjekt in eine Datei
Wie ein Klassenobjekt gebeizt werden kann, wird im folgenden Beispiel gezeigt. Erstellen Sie eine Datei mit dem Namen pickle3.py mit folgendem Skript. Hier, Angestellter Klasse wird deklariert, um einem Mitarbeiter drei Datenwerte zuzuweisen. Als nächstes wird ein Dateihandlerobjekt namens fileHandler wird erstellt, um eine Datei zum Schreiben zu öffnen. Nach der Initialisierung des Klassenobjekts werden die Daten mit serialisiert entsorgen() Funktion und in der Datei namens . gespeichert Mitarbeiterdaten . Wenn die Datei ordnungsgemäß erstellt wird, wird die Nachricht Daten werden serialisiert drucken wird.
# Pickle-Modul importierenimportieren Essiggurke
# Deklarieren Sie die Mitarbeiterklasse, um den Wert zu speichern
KlasseAngestellter:
def __drin__(selbst,Name, Email,Post):
selbst.Name =Name
selbst.Email = Email
selbst.Post =Post
#Mitarbeiterobjekt erstellen
empObject=Angestellter('Farheen', ' [E-Mail geschützt] ', 'Manager')
# Datei für Geschäftsdaten öffnen
fileHandler= offen('Mitarbeiterdaten', 'wb')
# Speichern Sie die Daten in die Datei
Essiggurke.entsorgen(empObject,fileHandler)
# Datei schließen
fileHandler.nah dran()
# Nachricht drucken
drucken('Daten werden serialisiert')
Ausgabe:
Die folgende Ausgabe wird angezeigt, nachdem das Skript ausgeführt wurde.
Daten zu einem Klassenobjekt aufheben
Eine Klasse mit den erforderlichen Eigenschaften und Methoden muss zum Abrufen der Daten aus einer Datei zu einem Klassenobjekt deklariert werden. Erstellen Sie eine Datei mit dem Namen pickle4.py mit folgendem Code. Angestellter Klasse wird hier definiert, um die Daten abzurufen. fileObject Variable wird verwendet, um die Datei zu öffnen, Mitarbeiterdaten zum Lesen. Nächste, Belastung() -Funktion wird verwendet, um die Daten nach der Deserialisierung im Klassenobjekt zu speichern. Anzeige() Funktion der Angestellter class wird aufgerufen, um die Datenwerte des Klassenobjekts zu drucken.
# Pickle-Modul importierenimportieren Essiggurke
# Mitarbeiterklasse zum Lesen und Drucken von Daten aus einer Datei deklarieren
KlasseAngestellter:
def __drin__(selbst,Name, Email,Post):
selbst.Name =Name
selbst.Email = Email
selbst.Post =Post
defAnzeige(selbst):
drucken('Mitarbeiterinformation:')
drucken('Name :', selbst.Name)
drucken('Email :', selbst.Email)
drucken('Post :', selbst.Post)
# Datei zum Lesen öffnen
fileObject= offen('Mitarbeiterdaten', 'rb')
# Entpicken Sie die Daten
Angestellter= Essiggurke.Belastung(fileObject)
# Datei schließen
fileObject.nah dran()
#Datenrahmen drucken
Angestellter.Anzeige()
Ausgabe:
Die folgende Ausgabe wird angezeigt, nachdem das Skript ausgeführt wurde.
Abschluss
Das Pickle-Modul ist eine nützliche Funktion von Python für die Datenserialisierung und -deserialisierung. Nachdem Sie die in diesem Tutorial gezeigten Beispiele abgeschlossen haben, wird die Datenübertragung von einem Python-Skript zu einem anderen Python-Skript für jeden einfacher.