In der Programmierung ist es oftmals hilfreich, Daten schnell in eine Datei zu schreiben um auf den Inhalt zu einem späteren Zeitpunkt zurückzugreifen oder Daten auch nach Programmende für eine spätere Verwendung zu speichern.

In Python lässt sich das Schreiben in und Lesen aus Dateien sehr einfach und schnell mit der read() und write()-Methode realisieren. Der folgende Code erstellt eine Datei „data.txt“ und schreibt anschließend den Text-String „This is some content for the file“ mit anschließenden Zeilenumbruch (\n) in die Datei. Mit close() wird die Datei anschließend gespeichert.

myfile = open("data.text", "w")
myfile.write("This is some content for the file+\n"
myfile.close()

Der Zusatz „w“ nach den Dateinamen öffnet das File im Schreibmodus (write). Sollte bereits eine Datei mit selben Namen existieren, wird die Datei überschrieben und bisherige Inhalte gehen verloren. Verwendet man den Zusatz „a“ für append anstelle von „w“, wird die neue Information in der vorhandenen Datei hinzugefügt. Sollte noch keine Datei existieren, wird eine erstellt.

Das Auslesen von Informationen aus einer Datei funktioniert sehr ähnlich. Zunächst muss wieder ein Dateiobjekt geöffnet werden. Anschließend kann der Inhalt mit read() an eine Variable oder Datenobjekt übergeben oder direkt ausgegeben werden.

myfile2 = open("data.text", "r")
inhalt = myfile2.read()
print(inhalt)
myfile2.close()

Mit dem Parameter „r“ wird die vorhandene Datei „data.txt“ im Lesemodus (read) geöffnet und anschließend der Inhalt an die String-Variable „inhalt“ übergeben. Mit dem print-Befehl wird die Information anschießend ausgegeben.

Bei Angabe eines Wertes innerhalb der Klammern für die Methode read() kann man den zu lesenden Inhalt einschränken. Der folgende Befehl liest nur die ersten 10 Zeichen der Datei.

inhalt = myfile2.read(10)

Neben dem bereits erwähnten Modus „r“ für read, „w“ für write und „a“ für append gibt es noch „r+“ – read/write, also für lesen und schreiben in eine Datei!

Oftmals ist es auch effektiver, nicht den gesamten Inhalt als einen String einzulesen, sondern den Inhalt zeilenweise z. B. in einer Liste zu speichern. Dazu verwendet man readlines().

inhalt = myfile.readlines()