7. Eingabe und Ausgabe

7.1. Bildschirmausgabe

Die Textausgabe auf dem Bildschirm mit dem Schlüsselwort print wurde bereits in einigen Beispielen benutzt. Deshalb werden an dieser Stelle die wichtigsten Varianten nur noch anhand einiger Beispiele zusammengefasst.:

print "Hello World"  #Nur Text

for i in range(4):   #Formatierte Ausgabe
        for j in range(3):
                print "%3d mal %3d ist gleich %4d" % (i,j,i*j)


print 'Erster Teil', #Unterdrueckung des Zeilenumbruchs
print 'Zweiter Teil'

7.2. Tastatureingaben

Für die Eingabe von Daten über die Tastatur ist in Python die Funktion input(Anzeigetext) definiert. Der Parameter Anzeigetext ist ein String, der am Bildschirm angezeigt wird und zur Tastatureingabe auffordern soll. Beim Aufruf der Funktion wird der Programmablauf solange angehalten, bis der Anwender eine Tastatureingabe vornimmt und diese mit Return abschließt. Der Rückbabewert der Funktion ist die interpretierte Tastatureingabe.

eingabe=input("Geben Sie etwas ein\n")
print eingabe

Nach Eingabe einer zusammenhängenden Zeichenkette wird diese am Bildschirm ausgegeben. Enthält die Eingabe einen Whitespace-Character, bricht das Programm mit einer Fehlermeldung ab. Möglich ist jedoch eine solche Eingabe wenn sie mit Anführungszeichen versehen wird. Die Eingabe von z.B. 4*10 ergibt die Ausgabe 40. An diesen Beispielen wird deutlich, dass die Funktion input die Tastatureingabe zunächst interpretiert und dann eine Referenz auf den interpretierten Wert liefert. Ist dieses Verhalten unerwüncht kann anstelle von input(), die Funktion raw_input(Anzeigetext) verwendet werden. Diese Funktion liefert jede mögliche Tastatureingabe als String zurück.

7.3. Ein und Ausgabe aus/in Dateien

Ein- und Ausgabe werden in Python über Dateiobjekte realisiert. Die Funktion open(filename,mode) liefert eine Referenz auf ein solches Dateiobjekt. Der Parameter filename ist ein String, der den Dateiname oder Pfad und Name definiert. Der zweite Parameter ist ebenfalls ein String, der die Zugriffsart definiert, z.B. "w" für schreibenden und "r" für lesenden Zugriff. Mit dem Mode "a", können neue Daten an eine bestehende Datei angehängt werden. Nach Benutzung eines Dateiobjekts muss dieses mit der Methode close() geschlossen werden.

7.3.1. Eingabe aus Datei

Mit dem folgenden Programm wird der gesamte Inhalt der spezifizierten Datei in den String dateiinhalt geschrieben

fin = open("Beispieldatei1.txt","r")
dateiinhalt = fin.read()
print "Typ:  ",type(dateiinhalt)
print "Inhalt:\n", dateiinhalt
fin.close()

Die Ausgabe ist:

Typ:   <type 'str'>
Inhalt:
Diese Zeile enthält nur 2 Zeilen
und sonst nichts.

Für das Dateiobjekt fin kann anstelle der read()-Methode, die readline()-Methode aufgerufen werden. Mit ihr wird der Dateiinhalt zeilenweise in Stringvariablen gelesen. Das Programm:

fin = open("Beispieldatei1.txt","r")
ersteZeile = fin.readline()
zweiteZeile = fin.readline()
nocheineZeile = fin.readline()
print "Zeile 1:    ",ersteZeile
print "Zeile 2:    ",zweiteZeile
print "Zeile 3:    ",nocheineZeile
fin.close()

erzeugt die Ausgabe:

Zeile 1:     Diese Zeile enthält nur 2 Zeilen

Zeile 2:     und sonst nichts.
Zeile 3:

Die Methode readlines() liefert eine Liste von Strings, wobei jedes Listenelement eine Zeile der eingelesenen Datei enthält.

Die effizienteste Methode eine Datei auszulesen besteht jedoch darin, über das Dateiobjekt wie folgt zu iterieren:

fin = open("Beispieldatei1.txt","r")
for line in fin:
        print line
fin.close()

Damit wird die gleiche Ausgabe erzeugt wie im Beispiel der readline() Methode.

7.3.2. Schreiben in Datei

Ein für den schreibenden Zugriff angelegtes Dateiobjekt stellt u.a. die Methode write(string) bereit, mit der in die spezifizierte Datei geschrieben wird:

fout=open("Beispieldatei2.txt","w")
fout.write("Erster String")
fout.write("Zweiter String")
fout.close()

Diese Anweisungsfolge öffnet eine Datei mit dem spezifizierten Namen für den schreibenden Zugriff. Falls die Datei noch nicht existiert, wird sie neu angelegt. Danach werden die zwei Strings unmittelbar nacheinander in eine Zeile der Datei geschrieben. Die Funktion write(string) hat auch einen Rückgabewert, nämlich die Anzahl der geschriebenen Zeichen. Mit der Funktion writelines(Stringliste) kan eine Liste von Strings in die Datei geschrieben werden.

Inhalt

Vorheriges Thema

6. Klassen

Nächstes Thema

8. sqlite3 - DB-API 2.0 Schnittstelle für SQLite

Diese Seite