Le tableau qui n’est que du texte
Ton prof t’envoie les notes de la classe en pièce jointe. Tu l’ouvres dans un tableur et tu vois un tableau.
Mais ouvre-le avec le bloc-notes : ce n’est que du texte, avec des points-virgules. C’est un fichier CSV.
Un programme peut lire ce texte et répondre à tes questions. Dans cette leçon, tu apprends à le faire.
Mots-clés
| Mot | Ce que ça veut dire | Exemple |
|---|---|---|
| Table | Des données rangées en lignes et en colonnes. | Les notes de la classe |
| Ligne | Un élément de la table, avec toutes ses valeurs. | Léa;14;16 |
| Colonne | Toutes les valeurs d’un même sujet. | Toutes les notes de maths |
| CSV | Un fichier de texte qui contient une table. | notes.csv |
| Séparateur | Le signe qui coupe les valeurs sur une ligne. | Le point-virgule ; |
| Descripteur | Le nom d’une colonne. Ils sont sur la première ligne. | nom;maths;francais |
| Valeur | Ce qu’il y a dans une case de la table. | 14 |
| split | Le mot de Python qui coupe un texte en morceaux. | "a;b".split(";") donne ["a", "b"] |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Un tableau écrit en texte
Dans un fichier CSV, chaque ligne du texte est une ligne de la table.
Sur une ligne, un séparateur coupe les valeurs. En France, on utilise souvent le point-virgule.
La première ligne donne le nom des colonnes : ce sont les descripteurs.
À toi : couper un texte en lignes
texte = """nom;maths;francais
Léa;14;16
Karim;9;12
Sofia;17;15
Hugo;12;8"""
print(texte)
print()
print(texte.split("\n")) # \n est le saut de ligne
# Combien de lignes y a-t-il ? Écris print(len(texte.split("\n"))).
Exemple travaillé : une ligne devient une liste
| Ligne du texte | Après split(";") | Nombre de valeurs |
|---|---|---|
| nom;maths;francais | ["nom", "maths", "francais"] | 3 |
| Léa;14;16 | ["Léa", "14", "16"] | 3 |
| Karim;9;12 | ["Karim", "9", "12"] | 3 |
| Hugo;12;8 | ["Hugo", "12", "8"] | 3 |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Pourquoi un point-virgule ?
En français, on écrit 12,5 avec une virgule. Si le séparateur était la virgule, 12,5 serait coupé en deux valeurs.
Dans d’autres pays, le séparateur est souvent la virgule.
Avant de lire un fichier, regarde donc quel séparateur il utilise.
À toi : bon ou mauvais séparateur
ligne = "Karim;9;12"
print(ligne.split(";")) # le bon séparateur
print(ligne.split(",")) # le mauvais : tout reste collé
valeurs = ligne.split(";")
print("Élève :", valeurs[0])
print("Maths :", valeurs[1])
# Que donne valeurs[2] ? Et valeurs[3] ?
# Lis bien le message d’erreur de valeurs[3].
Tout est du texte
Attention
Après split, la valeur "14" est du texte, pas un nombre. "14" + "9" donne "149". Pour calculer, écris int(valeurs[1]).
Contrôle rapide
À toi de jouer
Contrôle rapide
4 questionsTes réponses sont corrigées ici et ne sont pas conservées. Un compte garde tes résultats.