objectif
Écrire et lire des CSV en utilisant des dictionnaires par ligne.
code minimal
import csv, io
buf = io.StringIO()
w = csv.DictWriter(buf, fieldnames=["a","b"]); w.writeheader(); w.writerow({"a":1,"b":2})
buf.seek(0); r = csv.DictReader(buf)
row = next(r)
print(row["a"] == "1" and row["b"] == "2") # attendu: True
utilisation
import csv, io
buf = io.StringIO()
w = csv.DictWriter(buf, fieldnames=["x","y"]); w.writeheader(); w.writerows([{"x":1,"y":2},{"x":3,"y":4}])
buf.seek(0); rows = list(csv.DictReader(buf))
print(len(rows) == 2 and rows[1]["y"] == "4")
variante(s) utile(s)
import csv
print(",".join(csv.list_dialects()) != "")
notes
- Les valeurs sont des chaînes lors de la lecture -> caster selon besoin.
- Gérez newline=” sur fichiers réels pour éviter des lignes vides sous Windows.