Zum Hauptinhalt springen

CSV-Dateien schreiben

Beispiel

import csv

with open("punkte.csv", "w", encoding="utf-8", newline="") as f:
writer = csv.writer(f)
writer.writerow(["name", "punkte"])
writer.writerow(["Luna", 12])
writer.writerow(["Lily", 15])
print("Gespeichert.")

newline="" ist unter Windows wichtig, damit keine Leerzeilen entstehen.

DictWriter

import csv

rows = [
{"name": "Luna", "punkte": 12},
{"name": "Lily", "punkte": 15},
]
with open("punkte.csv", "w", encoding="utf-8", newline="") as f:
writer = csv.DictWriter(f, fieldnames=["name", "punkte"])
writer.writeheader()
writer.writerows(rows)

Rate mal!

Was macht writeheader?

Auflösung

Schreibt die Spaltennamen in die erste Zeile.

Probiere es selbst

Experiment 1

writerow Kopf + 2 Zeilen.

Experiment 2

Datei im Editor prüfen.

Experiment 3

DictWriter mit 3 Spalten.

Fehlerdetektiv

Ohne newline="" unter Windows: oft Leerzeilen – Flag setzen.

Übungen

Level 1

CSV mit 2 Spalten.

Level 2

3 Datenzeilen.

Level 3

Aus Liste von Dicts speichern.

Level-1-Lösung
import csv
with open("a.csv", "w", encoding="utf-8", newline="") as f:
w = csv.writer(f)
w.writerow(["tier", "alter"])
w.writerow(["Fuchs", 3])

Mini-Quiz

Mini-QuizWelches Modul hilft bei CSV?

Schreiben sitzt! Als Nächstes: lesen.