Jetzt geht's ans 'Eingemachte'. Python stellt ein Standard-Modul namens pickle
('einmachen') zu Verfügung, mit dessen Hilfe man jedes
Python-Objekt in eine Datei speichern kann und es dann später wieder intakt zurück erhält.
Man nennt dies die persistente Speicherung eines Objekts.
Sie können Sich dies auch als das 'Einfrieren' und wieder 'Auftauen' eines Objekts vorstellen.
Es gibt ein anderes Modul namens cPickle
, das ganz genauso wie das
pickle
-Modul funktioniert, außer dass es in der Sprache C geschrieben
und daher (bis zu 1000 mal) schneller ist. Sie können sich aussuchen, welches der beiden Module
Sie verwenden wollen, auch wenn wir hier als Beispiel das Modul cPickle
verwenden. Denken Sie aber daran, dass wir der Einfachheit halber immer nur vom
pickle
-Modul sprechen.
Beispiel 12.2. Einfrieren und wieder Auftauen (einmachen.py)
#!/usr/bin/python import cPickle as p #import pickle as p einkaufsdatei = 'einkaufsliste.data' # Datei, in der wir das Objekt speichern einkaufsliste = ['Aepfel', 'Mangos', 'Karotten'] # Schreibe in die Datei f = file(einkaufsdatei, 'w') p.dump(einkaufsliste, f) # speichere das Objekt in der Datei f.close() del einkaufsliste # loesche die einkaufsliste # Lies die Einkaufsliste aus der Datei wieder ein f = file(einkaufsdatei) gespeicherteliste = p.load(f) print gespeicherteliste
Beachten Sie als erstes, dass wir die import..as
-Syntax
verwendet haben. Dies ist praktisch, denn wir können einen kürzeren Namen
für das Modul verwenden. Es ermöglicht uns in diesem Fall sogar, ein anderes
Modul (cPickle
oder pickle
) zu
verwenden, indem wir einfach nur eine Zeile ändern! Im Rest des Programms
beziehen wir uns auf dieses Modul als p
.
Um ein Objekt in einer Datei zu speichern, öffnen wir zunächst ein
file
-Objekt im Schreibmodus und speichern
das Objekt in der offenen Datei, indem wir die Funktion dump
des pickle
-Moduls benutzen. Dieser Vorgang wird als
das Einmachen (pickling)
oder Einfrieren bezeichnet.
Als Nächstes holen wir das Objekt mit der Funktion load
des
pickle
-Moduls wieder zurück. Dieser Vorgang wird als
Wiederauftauen (oder
unpickling) bezeichnet.