Détails de la lecture¶
Objectif : maîtriser le comportement de parse_csv au-delà du cas simple.
Ce que vous allez apprendre : comment parse_csv traite l'en-tête, les
lignes vides, un séparateur autre que la virgule, et les cas qu'il refuse.
Connaître ces détails évite des surprises sur des fichiers réels.
Deuxième palier du niveau débutant de la progression Import/Export.
Ce que ce starter montre¶
- l'en-tête qui fournit les clés et les lignes vides ignorées ;
- le séparateur réglable avec
delimiter; - les erreurs
CsvImportErrorsur les CSV mal formés.
Fonctions Forge utilisées¶
| Fonction | Rôle dans ce starter | Référence |
|---|---|---|
parse_csv(text, delimiter=",") |
Lit un CSV avec un séparateur réglable. | Opt-ins |
CsvImportError |
Erreur levée sur un CSV invalide. | Opt-ins |
1. En-tête, lignes vides et lignes courtes¶
from forge_mvc_import_export import parse_csv
texte = "nom,age\nAlice,30\n\nBob\n"
lignes = parse_csv(texte)
print(lignes)
# [{"nom": "Alice", "age": "30"}, {"nom": "Bob", "age": ""}]
Comprendre ce code¶
- La première ligne,
nom,age, donne les clés ; elle n'apparaît pas dans le
résultat. - La ligne vide entre Alice et Bob est ignorée.
- La ligne
Bobest plus courte que l'en-tête : la colonneagemanquante
est complétée par une chaîne vide"".
2. Choisir un autre séparateur¶
from forge_mvc_import_export import parse_csv
texte = "nom;age\nAlice;30"
lignes = parse_csv(texte, delimiter=";")
print(lignes) # [{"nom": "Alice", "age": "30"}]
Comprendre ce code¶
delimiter=";"lit un CSV à points-virgules, courant dans les exports
francophones de tableur.- Le séparateur s'applique aussi bien à l'en-tête qu'aux lignes de données.
3. Les CSV refusés¶
from forge_mvc_import_export import parse_csv, CsvImportError
try:
parse_csv("")
except CsvImportError as erreur:
print("CSV invalide :", erreur)
Comprendre ce code¶
parse_csvlèveCsvImportErrorsi le CSV est vide.- Il refuse aussi un en-tête dont une colonne n'a pas de nom, ou un en-tête
comportant deux fois la même colonne. - Capturer
CsvImportErrorpermet de signaler proprement un fichier mal formé.
À retenir¶
- L'en-tête fournit les clés ; les lignes vides sont ignorées.
- Une ligne plus courte que l'en-tête est complétée par
"". delimiterchange le séparateur ; un CSV invalide lèveCsvImportError.
Après ce starter¶
Vous savez lire un CSV de façon robuste.
Place au bilan du niveau débutant.