Bis jetzt konntest du Aufgaben hinzufügen, anzeigen und löschen.
Aber sobald du das Programm beendet hast, war alles weg.
In diesem Teil zeige ich dir:
- wie du deine Aufgaben in einer Datei speicherst
- wie du sie beim nächsten Start wieder laden kannst
So wird aus deinem kleinen To-Do-Programm ein echtes Werkzeug, das merkt, was du gestern eingetragen hast.
Was du in diesem Teil lernst
Neues Ding | Erklärung ganz ohne Fachchinesisch |
---|---|
open() | Öffnet eine Datei |
write() | Schreibt Text in eine Datei |
readlines() | Liest Text aus einer Datei |
with ... as ...: | Kümmert sich darum, dass Dateien richtig geöffnet und geschlossen werden |
try/except | Verhindert, dass das Programm abstürzt, wenn z. B. die Datei noch nicht da ist |
Keine Sorge: Wir gehen ganz langsam vor und bauen alles Schritt für Schritt auf.
Vorbereitung
Wir speichern unsere Aufgaben in einer Datei, z. B. in:
aufgaben.txt
Das ist einfach eine Textdatei, in der jede Aufgabe in einer eigenen Zeile steht.
Schritt 1: Datei beim Start lesen
Wenn du das Programm öffnest, soll es schauen:
„Gibt’s da schon Aufgaben? Dann lade sie!“
aufgaben = []
try:
with open("aufgaben.txt", "r", encoding="utf-8") as datei:
for zeile in datei:
aufgaben.append(zeile.strip())
except FileNotFoundError:
# Datei gibt es noch nicht – kein Problem!
pass
Was passiert hier?
open(..., "r")
öffnet die Datei zum Lesenzeile.strip()
entfernt das\n
(Zeilenumbruch am Ende)aufgaben.append(...)
fügt jede Aufgabe zur Liste hinzutry/except
verhindert einen Absturz, wenn die Datei noch nicht existiert
Schritt 2: Nach Änderungen speichern
Immer wenn du eine neue Aufgabe hinzufügst oder eine erledigst, musst du die Datei neu schreiben:
with open("aufgaben.txt", "w", encoding="utf-8") as datei:
for aufgabe in aufgaben:
datei.write(aufgabe + "\n")
💡 "w"
steht für „write“ – also schreiben.
Dabei wird der alte Inhalt überschrieben.
🧩 Wann speichern?
Jedes Mal wenn du:
- eine neue Aufgabe hinzufügst
- eine Aufgabe löschst
Das heißt: Du fügst den Speicher-Teil einfach nach dem Ändern ein.
Der komplette Code – jetzt mit Dateispeicherung
# Aufgabenliste laden
aufgaben = []
try:
with open("aufgaben.txt", "r", encoding="utf-8") as datei:
for zeile in datei:
aufgaben.append(zeile.strip())
except FileNotFoundError:
pass # Wenn es die Datei noch nicht gibt
# Menü starten
while True:
print("\nWas möchtest du tun?")
print("1 - Neue Aufgabe hinzufügen")
print("2 - Aufgaben anzeigen")
print("3 - Aufgabe erledigt")
print("4 - Beenden")
wahl = input("👉 Deine Auswahl: ")
if wahl == "1":
neue_aufgabe = input("Was möchtest du erledigen? ")
aufgaben.append(neue_aufgabe)
# Liste speichern
with open("aufgaben.txt", "w", encoding="utf-8") as datei:
for aufgabe in aufgaben:
datei.write(aufgabe + "\n")
print(f"✅ Aufgabe hinzugefügt: {neue_aufgabe}")
elif wahl == "2":
if len(aufgaben) == 0:
print("🎉 Keine Aufgaben – du bist fertig!")
else:
print("\n📝 Deine Aufgaben:")
for nummer in range(len(aufgaben)):
print(f"{nummer + 1}. {aufgaben[nummer]}")
elif wahl == "3":
if len(aufgaben) == 0:
print("⚠️ Du hast keine Aufgaben zum Erledigen.")
else:
eingabe = input("Welche Nummer ist erledigt? ")
if eingabe.isdigit():
nummer = int(eingabe) - 1
if 0 <= nummer < len(aufgaben):
erledigt = aufgaben.pop(nummer)
# Liste speichern
with open("aufgaben.txt", "w", encoding="utf-8") as datei:
for aufgabe in aufgaben:
datei.write(aufgabe + "\n")
print(f"✅ '{erledigt}' wurde entfernt.")
else:
print("⚠️ Diese Nummer gibt es nicht.")
else:
print("⚠️ Bitte gib eine gültige Zahl ein.")
elif wahl == "4":
print("Tschüss! 👋")
break
else:
print("⚠️ Ungültige Eingabe.")
Beispiel: So sieht deine Datei aus
Wenn du 3 Aufgaben eingibst, steht in aufgaben.txt
:
Wäsche waschen
Python üben
Einkaufen
Beim nächsten Start liest das Programm diese Datei wieder ein – und die Aufgaben sind da!
Neue Begriffe erklärt
Begriff | Bedeutung |
---|---|
open("datei.txt", "r") | Datei öffnen zum Lesen |
open("datei.txt", "w") | Datei öffnen zum Schreiben (überschreibt Inhalt!) |
with ... as ...: | Öffnet die Datei und schließt sie automatisch wieder |
strip() | Entfernt Zeilenumbrüche |
try/except | Verhindert Abstürze bei Fehlern (z. B. wenn Datei fehlt) |
🎉 Glückwunsch!
Dein To-Do-Programm kann jetzt:
✅ Aufgaben merken
✅ Aufgaben anzeigen
✅ Aufgaben löschen
✅ Aufgaben dauerhaft speichern – sogar zwischen Programmstarts!
Das ist ein riesiger Schritt. Du hast jetzt ein richtiges Mini-Tool gebaut, das man im Alltag verwenden kann.
Schreibe einen Kommentar