Lire un fichier CSV simple
Ce qu'il faut comprendre
Quand tu travailles avec des données, par exemple les notes de ta classe ou les résultats d’un sondage, elles sont souvent rangées dans un fichier CSV. CSV signifie Comma-Separated Values (valeurs séparées par des virgules). C’est un format très simple : chaque ligne correspond à une ligne d’un tableau, et les colonnes sont séparées par des virgules. Par exemple :
nom,note
Alice,15
Bob,12
En Python, tu peux lire ce fichier pour récupérer les données et les utiliser dans ton programme. C’est ce qu’on va apprendre ici.
Les notions essentielles
- Fichier CSV : fichier texte où chaque ligne est une ligne de tableau, les colonnes sont séparées par un séparateur (souvent la virgule).
- Lire un fichier : ouvrir le fichier, parcourir son contenu ligne par ligne, et le transformer en données exploitables (par exemple une liste de listes).
- Variable : boîte qui stocke une valeur (ex:
nom_fichier = "notes.csv"). - Liste : structure qui contient plusieurs éléments (ex:
lignes = []). - Boucle : répéter une action (ex:
for ligne in fichier:). - Condition : tester une situation (ex:
if note > 10:). - Algorithme : suite d’instructions pour résoudre un problème (ici, lire un CSV).
Méthode
Pour lire un fichier CSV simple, suis ces étapes :
- Ouvre le fichier avec
open()en mode lecture ("r"). - Crée une liste vide pour stocker les données.
- Parcours chaque ligne du fichier avec une boucle
for. - Nettoie la ligne : enlève le saut de ligne avec
strip(). - Découpe la ligne en colonnes avec
split(",")(ou autre séparateur). - Ajoute la liste obtenue à ta liste de données.
- Ferme le fichier avec
close()(ou utilise unwithpour le faire automatiquement).
Astuce : La première ligne est souvent l’en-tête (noms des colonnes). Tu peux la traiter à part si besoin.
Exemple corrigé
Imaginons le fichier eleves.csv :
prenom,age,note
Léa,15,14
Tom,16,11
Emma,15,17
Objectif : lire ce fichier et afficher les élèves ayant une note >= 15.
Code :
# 1. Ouvrir le fichier
fichier = open("eleves.csv", "r")
# 2. Lire toutes les lignes
donnees = []
for ligne in fichier:
ligne_propre = ligne.strip() # enlève le \n
colonnes = ligne_propre.split(",") # découpe
donnees.append(colonnes)
# 3. Fermer le fichier
fichier.close()
# 4. Afficher les élèves avec note >= 15
# La première ligne est l'en-tête, on la saute
for i in range(1, len(donnees)):
prenom = donnees[i][0]
note = int(donnees[i][2]) # convertir en entier
if note >= 15:
print(prenom, "a", note)
Explication pas à pas :
open("eleves.csv", "r")ouvre le fichier en lecture.for ligne in fichier:parcourt chaque ligne.ligne.strip()supprime les espaces et sauts de ligne au début et à la fin.ligne_propre.split(",")crée une liste :["Léa", "15", "14"].donnees.append(colonnes)ajoute cette liste àdonnees.- Après la boucle,
donneesest une liste de listes :[["prenom","age","note"], ["Léa","15","14"], ...]. - On utilise
range(1, len(donnees))pour ignorer l’en-tête (indice 0). int(donnees[i][2])convertit la note (texte) en entier pour pouvoir la comparer.if note >= 15:condition pour filtrer.
Résultat affiché :
Léa a 14
Emma a 17
Erreurs fréquentes
- Oublier de fermer le fichier : utilise
with open(...) as fichier:pour éviter ce problème. - Ne pas enlever le saut de ligne :
split()peut laisser\ndans la dernière colonne. Utilisestrip(). - Confondre indice : la première ligne est l’indice 0, la première donnée l’indice 1.
- Oublier de convertir : les données lues sont des chaînes de caractères. Si tu veux faire des calculs, convertis-les avec
int()oufloat(). - Mauvais séparateur : parfois le fichier utilise des points-virgules (
;) au lieu de virgules. Adaptesplit(";").
À retenir
- Un fichier CSV stocke des données sous forme de tableau.
- Pour le lire : ouvre, parcours chaque ligne, nettoie, découpe, stocke.
- Utilise
with open(...) as f:pour une gestion automatique. - N’oublie pas de convertir les nombres si nécessaire.
- La première ligne est souvent l’en-tête.
Pour s’entraîner
Maintenant que tu sais lire un fichier CSV, entraîne-toi avec les exercices et quiz sur AlloSeconde. Tu pourras manipuler des fichiers de notes, de températures, etc. Bon courage !
