Kapitel 9
Ein- und Ausgabe
258
9.1.7 Zwischenspeichern, ohne zu schließen
Mit der Methode close() wird eine Datei, die im Schreibmodus geöffnet worden ist,
geschlossen und gespeichert. Eine geschlossene Datei kann weder gelesen noch verändert
werden. Das Attribut
closed gibt darüber Auskunft, ob eine Datei geschlossen ist. Es hat
den Wert
True, wenn die Datei geschlossen ist, und sonst False. Durch einen Aufruf der
Methode
flush() wird die Datei zwischengespeichert, ohne sie zu schließen. Beispiel:
Die Methode
write() gibt die Anzahl der geschriebenen Zeichen zurück. Im interaktiven
Modus erscheint diese Zahl nach einem
write()-Aufruf in der nächsten Zeile.
9.1.8 Zugriff auf Files (lesen und schreiben)
File-Objekte sind Instanzen der Klasse File, die über verschiedene Attribute und Methoden
verfügen. Tabelle 9.2 gibt einen Überblick.
>>> datei = open('/projekt/daten/daten.txt','w')
>>> datei.write('Tim')
3
>>> datei.flush()
>>> datei.closed
False
>>> datei.write(' 455342\n')
8
>>> datei.close()
>>> datei.closed
True
Attribute und Methoden Erklärung
close() Die Datei wird geschlossen und gespeichert.
closed Das Attribut hat den Wert True, falls die Datei geschlossen ist,
und sonst
False.
flush() Die Datei wird gespeichert, aber nicht geschlossen.
mode Das Attribut enthält den I/O-Modus.
'r': Datei ist zum Lesen geöffnet.
'w': Datei ist zum Schreiben geöffnet.
read([bytes]) Der Inhalt der Datei wird gelesen und als String zurückgege-
ben (höchstens ein Stück der Länge
bytes, falls der Parameter
bytes angegeben ist).
readline() Die nächste Zeile wird gelesen und als String zurückgegeben.
readlines() Die Datei wird zeilenweise gelesen. Zurückgegeben wird eine
Liste von Strings.
seek(position) Der Cursor wird auf die angegebene Position gesetzt.
Tabelle 9.2: Attribute und Methoden von File-Objekten
259
9.1
Files
Wie bereits in Abschnitt 9.1.2 erläutert wurde, kann man sich ein File als Band vorstellen,
auf das geschrieben und von dem gelesen werden kann. Der Cursor gibt die aktuelle
Schreib-/Leseposition an. Mit der Methode
tell() fragt man seine momentane Position ab.
Wenn eine Datei gerade geöffnet worden ist, steht der Cursor am Anfang auf Position 0.
Sie sehen, dass die Position als ganze Zahl zurückgegeben wird.
Bei Schreib- und Leseoperationen (
write() und read()) wird der Cursor um so viele Stel-
len weitergerückt, wie Zeichen geschrieben oder gelesen worden sind:
Speichern wir nun in einer Datei drei Zeilen einer Telefonliste ab. Die Telefonliste wird
zunächst als lange Zeichenkette (eingefasst durch dreifache Anführungszeichen) definiert:
Wir öffnen nun wieder die Datei mit den Telefonnummern, diesmal aber zum Lesen (Modus
'r').
Der Aufruf von
readline() liefert die nächste Zeile des Files, das heißt die Zeichenkette
von der aktuellen Position des Cursors bis (einschließlich) zum nächsten Zeilenendezei-
chen
\n.
tell() Die Methode liefert die aktuelle Cursorposition.
write(str) Die Zeichenkette str wird in die Datei geschrieben.
>>> datei = open('/projekt/daten.txt', 'w')
>>> datei.tell()
0
>>> datei.write('Tim')
>>> datei.tell()
3
>>> datei.close()
>>> tel = """Tim 85675
Jenny 233325
Max 89923"""
>>> teldatei = open('/projekt/daten/tel.txt', 'w')
>>> teldatei.write(tel)
32
>>> teldatei.close()
>>> teldatei = open('/projekt/daten/tel.txt', 'r')
Attribute und Methoden Erklärung
Tabelle 9.2: Attribute und Methoden von File-Objekten (Forts.)

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.