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?
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:
- ârâ (read) nur lesen
- âwâ (write) nur schreiben (ĂŒberschreibt alles was bisher in der Datei steht)
- âaâ (append) nur anhĂ€ngen (schreibt am Ende der bisherigen Inhalte der Datei weiter)
- âr+â Lesen und schreiben
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 mitdatei.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")
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
- Lese eine Liste von Noten aus der Datei daten4_ein.txt ein. Jede Zeile enthÀlt eine Note.
- Wandle die Noten um in eine Liste von Zahlen.
- Rechne den Durchschnitt aus.
- Schreib den Durchschnittswert in die Datei daten4_aus.txt.
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.