Dateien einlesen und verarbeiten

Wir können zum Beispiel aus einer .txt-Datei Inhalte einlesen, verarbeiten und in der gleichen oder einer anderen Datei wieder ausgeben.

(Prinzipiell sind Python Dateiendungen eigentlich komplett egal. Es ist also unerheblich, ob die Datei mit .txt oder was Anderem endet – Python macht immer dasselbe. 
nur: bei einer .txt steht halt im Gegensatz zu z.B. docx auch wirklich nur Text drin.)

MERKE
Um auf eine Datei zuzugreifen (lesend oder schreibend) wird die Funktion open verwendet:

datei = open(dateiname_als_string, modus)

Dabei ist modus ein String, der angibt, ob gelesen oder geschrieben werden soll. Mögliche Werte dafĂŒr sind:

Der Standard ist ĂŒbrigens r. Es hat als open(“bla.txt”) dieselbe Wirkung wie open(“bla.txt”, “r”).

MERKE
Alles wird StandardmĂ€ĂŸig als String eingelesen!

Eine eingelesene Datei (also die entsprechende Variable) kann wie eine Liste von Zeilen behandelt werden.

FĂŒge dem Code links eine Anweisung hinzu, sodass der Inhalt jeder einzelnen Zeile am Bildschirm ausgegeben wird.

MERKE
Sobald eine Datei nicht mehr benötigt wird, sollte sie mit

datei.close()

wieder geschlossen werden. 
alles andere wÀre unsauber.


Schreiben

Schreiben funktioniert ganz Ă€hnlich wie Lesen: Zum Öffnen benutzt man in der Funktion open dann eben (je nach Verwendungszweck) einen der Modi “w”, “a” oder “r+”. Das eigentliche Schreiben ĂŒbernimmt die Funktion write des Dateiobjektes:

datei.write("blabla")

Was ist der Inhalt der Datei datei1.txt nach AusfĂŒhren des unten stehenden Codes, wenn in der Datei vor dem AusfĂŒhren schon Hello World stand?

WĂ€hle mindestens eine Antwort

datei = open("datei1.txt", "a")
datei.write("FooBar")

Aufgabe 1
Lege folgende Liste von Zahlen an: [2, 5, 3, 10, 20, 32, 10]. Schreibe diese Zahlen mit einer for-Schleife in eine Datei namens daten1.txt.

Aufgabe 2
Lies die nun erstellte Datei daten1.txt ein und gib ihre Zeilen einzeln (jeweils in einer Zeile) auf der Konsole aus.


Lesen und AusfĂŒhren

Aufgabe 3
Dein Programm soll die nun oben erstellte Datei daten1.txt lesen und jede gelesene Zahl jeweils verdoppeln. Die nun verdoppelten Zahlen sollen nun wieder in eine Datei namens daten2.txt zurĂŒckgeschrieben werden.

Der String “\n” reprĂ€sentiert einen Zeilenumbruch.

MERKE
Wenn du nach dem Schreiben eines Wertes in die nĂ€chste Zeile springen willst, fĂŒge einfach \n am Ende des Strings ein, den du schreiben möchtest.


Notenprogramm

Aufgabe 4

Du kannst die Noten hier herunterladen: daten4_ein.txt

Kopiere die Noten auf der Seite, die dir angezeigt wird, wenn du auf den Link klickst und erstelle die genannte Datei in dem selben Verzeichnis wie dein Skript/Programm und fĂŒge dort die Noten ein.


Zusatzaufgabe (Pro)

Aufgabe 5

Benutze fĂŒr diese Aufgabe dein (hoffentlich) schon erstelltes Text-Adventure. Deine Aufgabe ist es den Spielverlauf, also alle Orte die besucht wurden, nach jeder Runde in einer Datei spielverlauf.txt abzuspeichern.


Zusatzaufgabe (Pro+)

Aufgabe 6

Jetzt kommt die Königsdisziplin! Versuche nun dein Text-Adventure nochmal so zu erweitern, dass du den gespeicherten Spielverlauf wieder laden kannst, damit der Spieler nach schließen des Programms den alten Spielstand wieder laden kann.


Dein Feedback zu diesem Kapitel