So beizen Sie Objekte in Python

How Pickle Objects Python



Alle Daten können in Python mithilfe von JSON und dem Pickle-Modul serialisiert und deserialisiert werden. Vor dem Speichern von Daten in einer Datei werden Python-Objekte mit dem pickle-Modul serialisiert. Python-Objekte werden mithilfe dieses Moduls in Zeichenströme umgewandelt. Wenn der Benutzer die Daten der Datei für die Verwendung eines anderen Python-Skripts abrufen möchte, werden die Daten der Datei vom Pickle-Modul deserialisiert. Die Funktionen des pickle-Moduls und wie dieses Modul in Python-Skripten zur Serialisierung und Deserialisierung verwendet werden kann, werden in diesem Tutorial beschrieben.

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 Gurkenmodul
importieren 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 Gurkenmodul
importieren 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 importieren
importieren 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 importieren
importieren 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.