Empfohlene Unterrichtsinhalte als Vorbereitung für dieses Thema: 01-03 (Variablen), 02-01 (Strings), 02-02 (Listen), 03-02 (Bedingungen), 03-03 (Schleifen)

Einführung in die computerlinguistische Programmierung mit Python

04-02: Dateien schreiben 📝

Der Inhalt von Variablen ist immer bis zum Ende der Laufzeit verfügbar. Ausgaben, die wir mit print() umsetzen, sind nur so lange sichtbar, bis wir das Terminal schließen. Wenn wir Informationen langfristig speichern wollen, können wir Dateien im Dateisystem des Computers anlegen und sie mit Inhalten füllen.

Der folgende Code erzeugt eine Datei und schreibt einige Zeilen in diese Datei:

Den Dateinamen können wir frei wählen. Wir verwenden meist die Dateiendung .txt für Textdateien. Wenn wir nur den Namen angeben, wird die Datei im gleichen Verzeichnis erzeugt, in dem unser Pythoncode ausgeführt wird. Um einen anderen Speicherort zu wählen, geben wir absolute Pfade an, z.B. filename = "D:/Files/secrets.txt".

Die Zeile, die mit with beginnt, öffnet die Datei. Danach folgende Zeilen sind eingerückt: Nur innerhalb des Blocks können wir auf das Objekt outfile zugreifen.

Die allgemeine Form des Codes zum Öffnen einer Datei im Schreibmodus sieht so aus:

with open(<dateiname>, "w") as <dateivariable>:
    ...
    print(<inhalt>, file=<dateivariable>)

Für alle eingerückten Zeilen ist die geöffnete Datei verfügbar. Sobald wieder Code ohne Einrückung folgt, wird die Datei automatisch vom Interpreter geschlossen.

Die Dateivariable ist ein Name, den wir frei wählen können, ähnlich wie bei der Laufvariable in for-Schleifen. Diese Variable brauchen wir, um Inhalte in die Datei zu schreiben: Wir verwenden hierfür print mit dem zusätzlichen Parameter file. Dabei muss der Wert für file der Variablenname sein, den wir beim Öffnen der Datei erzeugt haben.

Wir haben oben den Modus "w" wie write (schreiben) gewählt. Bei jeder Ausführung des Codes wird die Datei komplett überschrieben. Wenn wir stattdessen "a" wie append (anhängen) verwenden, wird neuer Inhalt immer nach dem bisherigen Inhalt platziert, sodass nichts verlorengeht. Hier kann man den Unterschied gut sehen, wenn man beide Code-Varianten ausführt und am Ende die beiden Dateien vergleicht:

Encodings

Im Beispiel eben kam ein Umlaut vor, der möglicherweise in den erzeugten Dateien nicht richtig dargestellt wurde. Das liegt daran, dass beim Schreiben von Dateien mehrere mögliche technische Umsetzungen der einzelnen Zeichen zur Verfügung stehen.

Um sicherzugehen, dass eine Datei korrekt geschrieben wird, können wir beim Öffnen das Encoding utf8 als Parameter übergeben. Dann sieht unser Beispiel so aus:

Zusammenfassung

Weitere Themen dieser Woche