Kapitel 9
Ein- und Ausgabe
264
Dabei ist A ein Objekt und a ein Name, mit dem das Objekt im Anweisungsblock angespro-
chen werden kann. Objekte können zwei besondere Methoden besitzen:
__enter__() und
__exit__(). Das with-Statement garantiert, dass auf jeden Fall die __exit__()-Methode
des Objektes A aufgerufen wird, wenn zuvor die
__enter__()-Methode erfolgreich ausge-
führt werden konnte.
Bei File-Objekten öffnet die
__enter__()-Methode eine Datei zum Lesen und die Methode
__exit__() bewirkt, dass die geöffnete Datei wieder geschlossen wird.
Sie können ein
with-Statement verwenden, wenn Sie Daten aus einer Datei lesen wollen:
Hier ist das Objekt
A ein File-Objekt, das mit der open()-Funktion erzeugt worden ist.
Nach der Ausführung des
with-Statements ist dieses File wieder geschlossen. Überprüfen
Sie das!
9.3 Objekte speichern mit pickle
Das Modul pickle stellt Klassen und Funktionen bereit, mit denen man (fast) beliebige
Objekte auf einem Peripheriespeicher speichern und gespeicherte Objekte wieder laden
kann. Auf die Klassen gehen wir hier nicht ein. Das englische Verb »to pickle« bedeutet so
viel wie »einlegen« oder »einpökeln«. Sie kennen sicherlich »mixed pickles«, sauer einge-
legte kleine Gurken, Maiskolben und andere Gemüse. Mit
pickle können Sie also Objekte
»haltbar machen«.
Unter anderem folgende Objekt-Arten können mit dem
pickle-Mechanismus gespeichert
werden:
Zahlen
Strings
Funktionen
beliebige (auch verschachtelte) Sequenzen
Dictionaries
Instanzen selbst definierter Klassen (siehe Kapitel 10)
>>> with open("/Python35/README.txt") as f:
print(f.readline())
This is Python version 3.5.2
>>> f.read()
Traceback (most recent call last):
File "<pyshell#23>", line 1, in <module>
f.read()
ValueError: I/O operation on closed file.

Get Python 3 - Lernen und professionell anwenden now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.