Lesen einer Pickle-Datei mit Python
-
Lesen einer Pickle-Datei mit dem
pickle
-Modul in Python -
Lesen einer Pickle-Datei mit dem
pandas
-Modul in Python
In Python bezieht sich Pickling auf das Konvertieren eines Python-Objekts (Listen, Wörterbücher usw.) in einen Binärstrom, und Unpickling bezieht sich auf das Konvertieren eines binären Datenstroms in ein Python-Objekt.
Der konvertierte binäre Datenstrom enthält alle Informationen, um das ursprüngliche Objekt zu rekonstruieren. Leider gelten Pickle-Dateien im Allgemeinen als unsicher.
Pickle-Dateien werden verwendet, um den Status eines Programms (Werte von Variablen, Objekten und deren Status usw.) zu speichern, Python-Objekte in Form von serialisierten Binärzeichenfolgen in Datenbanken zu speichern, Daten über TCP oder Transmission Control Protocol zu senden usw.
Beim Trainieren von Modellen für maschinelles Lernen werden Pickle-Dateien verwendet, um Modellgewichtungen zu speichern, und manchmal werden die geladenen Trainingsdaten oder die formatierten Trainingsdaten in Form von Pickle-Dateien wieder auf der Festplatte gespeichert.
In diesem Artikel werden wir verstehen, wie man diese Pickle-Dateien mit Python liest. Wir werden zwei solcher Wege besprechen.
Lesen einer Pickle-Datei mit dem pickle
-Modul in Python
Python hat ein eingebautes Modul, pickle
, das Dienstprogramme zum Serialisieren und Deserialisieren von Daten mit Python enthält. Diese Daten können in Pickle-Dateien gespeichert werden.
Wir können das Modul pickle
verwenden, um eine Pickle-Datei mit Python zu lesen. Siehe dazu den folgenden Python-Code.
objects = []
file_name = "/path/to/the/pickle/file"
with (open(file_name, "rb")) as f:
while True:
try:
objects.append(pickle.load(f))
except EOFError:
break
Im obigen Code enthält die Variable objects
alle Daten der Pickle-Datei.
Der Code durchläuft die Datei, um sie zu lesen, bis eine EOFError
-Ausnahme gefunden wird. Das gleiche ist, dass die Daten in Objekten innerhalb einer Pickle-Datei gespeichert werden.
Die Funktion load()
aus dem Modul pickle
liest nur ein einzelnes Objekt. Nach dem Lesen eines Objekts zeigt der Dateizeiger auf den Anfang des nächsten Objekts in der Pickle-Datei.
Weitere Informationen finden Sie in der hier verlinkten Dokumentation.
Lesen einer Pickle-Datei mit dem pandas
-Modul in Python
Wir können die Bibliothek pandas
verwenden, um eine Pickle-Datei in Python zu lesen.
Das pandas
-Modul hat eine read_pickle()
-Methode, mit der eine Pickle-Datei gelesen werden kann.
Diese Methode akzeptiert ein filepath_or_buffer
-Argument: den Dateipfad, die URL oder den Puffer, aus dem die Pickle-Datei geladen wird. Diese Funktion gibt ein nicht ausgewähltes Objekt der Datei zurück.
Lassen Sie uns nun sehen, wie man diese Methode praktisch anwendet. Siehe dazu den folgenden Python-Code.
import pandas as pd
file_name = "/path/to/the/pickle/file"
objects = pd.read_pickle(file_name)
Um mehr über die Methode
read_pickle()
zu erfahren, siehe die offizielle Dokumentation hier.