Aufgaben-Python/13_persistenz_json_und_csv/README.md

44 lines
1.9 KiB
Markdown

# Kapitel 13: Datei-Persistenz (JSON & CSV) 💾📁
In diesem Kapitel lernst du, wie du deine Python-Objekte dauerhaft auf der Festplatte speicherst, sodass deine Daten auch nach dem Beenden des Skripts oder Ausschalten des Computers erhalten bleiben.
---
## 🎯 Was du lernst
1. **Flüchtiger RAM vs. Dauerhafte Festplatte:** Warum Daten im Arbeitsspeicher beim Programmende verschwinden und wie Dateien für dauerhafte Speicherung (Persistenz) sorgen.
2. **Sauberer Dateizugriff mit `with open(...)`:**
```python
with open("savegame.json", "w", encoding="utf-8") as f:
# Datei wird automatisch sicher geschlossen, selbst bei Fehlern!
```
3. **JSON (JavaScript Object Notation):**
- Das Standard-Format für verschachtelte Daten und Konfigurationen.
- `json.dump(daten, f, indent=4, ensure_ascii=False)` zum Schreiben.
- `daten = json.load(f)` zum Einlesen.
4. **Objekt-Serialisierung in OOP:**
- `to_dict(self)`: Wandelt ein Objekt in ein serialisierbares Dictionary um.
- `from_dict(cls, data)`: Erstellt aus einem Dictionary wieder eine echte Klasseninstanz.
5. **CSV (Comma-Separated Values):**
- Ideal für flache Tabellendaten (z.B. für Excel, Google Sheets oder Numbers).
- `csv.DictWriter` und `csv.DictReader`.
6. **Praxisbeispiel:** Ein **Savegame- und Highscore-Manager** für ein RPG / Spiel.
---
## 📁 Die Dateien in diesem Ordner
- **`index.html`**: Die interaktive Lernseite mit Tagebuch-Analogie, JSON- vs. CSV-Vergleichstabelle, Codebeispielen und Checkliste.
- **`aufgabe.py`**: Dein Arbeitsblatt zum Implementieren der Klassen `Spieler` und `Spielstand`.
- **`test_aufgabe.py`**: Automatische Unittest-Suite (`python3 test_aufgabe.py`).
- **`musterloesung.py`**: Vollständig ausprogrammierte Beispiellösung.
---
## 🚀 Schnellstart
```bash
# 1. Bearbeite aufgabe.py
# 2. Teste deine Lösung:
python3 test_aufgabe.py
```