6.3 Daten in eine Datei schreiben
Im letzten Abschnitt haben wir uns dem Lesen von Dateien gewidmet. Dass es auch andersherum geht, soll in diesem Kapitel das Thema sein. Um eine Datei zum Schreiben zu öffnen, verwenden wir ebenfalls die Built-in Function open. Sie erinnern sich, dass diese Funktion einen Modus als zweiten Parameter erwartet, der im letzten Abschnitt "r" für »read« sein musste. Analog dazu muss "w" (für »write«) angegeben werden, wenn die Datei zum Schreiben geöffnet werden soll. Sollte die gewünschte Datei bereits vorhanden sein, wird sie geleert. Eine nicht vorhandene Datei wird erstellt.
fobj = open("ausgabe.txt", "w")
Nachdem alle Daten in die Datei geschrieben wurden, muss das Dateiobjekt durch Aufruf der Methode close geschlossen werden:
fobj.close()
Das Schreiben eines Strings in die geöffnete Datei erfolgt durch Aufruf der Methode write des Dateiobjekts. Das folgende Beispielprogramm versteht sich als Gegenstück zum Beispiel aus dem letzten Abschnitt. Wir gehen davon aus, dass woerter ein Dictionary referenziert, das englische Begriffe als Schlüssel und die deutschen Übersetzungen als Werte enthält, beispielsweise ein solches:
woerter = {"Germany" : "Deutschland",
"Spain" : "Spanien",
"Greece" : "Griechenland"}
Es handelt sich also genau um ein Dictionary, wie es von dem Beispielprogramm des letzten Abschnitts erzeugt wurde.
fobj = open("ausgabe.txt", "w")
for engl in woerter:
fobj.write("{} {}\n".format(engl, woerter[engl]))
fobj.close()
Zunächst öffnen wir eine Datei namens ausgabe.txt zum Schreiben. Danach werden alle Schlüssel des Dictionarys woerter durchlaufen. In jedem Schleifendurchlauf wird mit fobj.write ein entsprechend formatierter String in die Datei geschrieben. Beachten Sie, dass Sie beim Schreiben einer Datei explizit durch Ausgabe eines \n in eine neue Zeile springen müssen.
Die von diesem Beispiel geschriebene Datei kann durch das Beispielprogramm aus dem letzten Abschnitt wieder eingelesen werden.