Inhaltsverzeichnis
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.
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.
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
$ python beispiel_file.py Programmieren mit Elan und die Arbeit wird getan, willst du Spass haben daran: Nimm Python!
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.