A Byte of Python

Kapitel 12. Ein/Ausgabe

Inhaltsverzeichnis

Dateien
Der Gebrauch von file
Eingemachtes
Einfrieren und wieder Auftauen
Zusammenfassung

Sie werden häufig die Anforderung haben, dass Ihr Programm mit dem Benutzer (der Sie auch selber sein können) interagieren soll. Das Programm soll etwa eine Eingabe vom Benutzer entgegennehmen und dann irgendwelche Ergebnisse ausgeben. Wir können dies mit raw_input bzw. print-Anweisungen erreichen. Zur Ausgabe können wir auch die verschiedenen Methoden der Klasse str (String) verwenden. Zum Beispiel können Sie die rjust-Methode einsetzen, um einen String zu erhalten, der bezüglich einer angegeben Breite rechts ausgerichtet ist. Für weitere Einzelheiten, siehe help(str).

Ein andere übliche Art von Ein/Ausgabe besteht aus dem Umgang mit Dateien. Die Möglichkeit, Dateien zu erzeugen, zu lesen und zu schreiben ist für viele Programme wesentlich, und wir werden diesen Aspekt in diesem Kapitel untersuchen.

Dateien

Sie können Dateien zum Lesen und Schreiben öffnen, indem Sie ein Objekt der Klasse file erzeugen und dessen Methoden read, readline oder write verwenden. Die Möglichkeit, aus der Datei zu lesen oder in die Datei zu schreiben hängt von dem Modus ab, den Sie beim Öffnen der Datei angegeben haben. Wenn Sie schließlich die Dateioperationen abschließen wollen, rufen Sie die Methode close auf, um Python mitzuteilen, dass Sie mit dieser Datei fertig sind.

Der Gebrauch von file

Beispiel 12.1. Verwendung von Dateien (beispiel_file.py)

				
#!/usr/bin/python

gedicht = '''\
Programmieren mit Elan
und die Arbeit wird getan,
willst du Spass haben daran:
	Nimm Python!
'''

f = file('gedicht.txt', 'w') # "w" = Schreiben
f.write(gedicht) # schreibe den Text in die Datei
f.close() # schliesse die Datei

f = file('gedicht.txt') # kein Modus bedeutet "r" = Lesen
while True:
	line = f.readline()
	if len(line) == 0: # eine leere Zeile bedeutet Dateiende (EOF)
		break
	print line, # das Komma dient zur Unterdrueckung des Zeilenvorschubs
f.close() # schliesse die Datei
				
				

Ausgabe

				
$ python beispiel_file.py
Programmieren mit Elan
und die Arbeit wird getan,
willst du Spass haben daran:
        Nimm Python!
				
				

So funktioniert es

Zuerst erzeugen wir eine Instanz der Klasse file, indem wir den Namen der Datei und den Modus angeben, in dem die Datei geöffnet werden soll. Der Modus kann Lesemodus sein ('r' für read), Schreibmodus ('w' für write) oder Anfügemodus ('a' für append). Es gibt tatsächlich noch viele weitere Modi, und mit help(file) erhalten Sie nähere Einzelheiten dazu.

Zuerst öffnen wir die Datei im Schreibmodus und benutzen die Methode write der Klasse file, um in die Datei zu schreiben, danach schließen wir die Datei wieder mit der Methode close.

Als Nächstes öffnen wir die gleiche Datei zum Lesen. Wenn wir keinen Modus angeben, dann wird standardmäßig der Lesemodus benutzt. Wir lesen jede Zeile der Datei in einer Schleife ein, wobei wir die Methode readline benutzen. Diese Methode gibt jeweils eine vollständige Zeile zurück, einschließlich der Zeilenvorschubkennung am Zeilenende. Wenn daher ein leerer String zurückgeliefert wird, dann zeigt uns dies an, dass das Ende der Datei erreicht wurde, und wir beenden die Schleife.

Beachten Sie, dass wir an die print-Anweisung ein Komma angehängt haben, um den automatischen Zeilenvorschub zu unterdrücken, der normalerweise bei jeder print-Anweisung hinzugefügt wird. Die aus der Datei eingelesene Zeile endet bereits mit einer Zeilenvorschubkennung, ein weiterer ist unnötig. Am Ende schließen wir die Datei wieder mit der Methode close.

Nun betrachten wir den Inhalt der Datei gedicht.txt, um sicherzustellen, dass das Programm wirklich einwandfrei funktioniert hat.