Le traitement de données structurées

Numérique et sciences informatiques

donnees

Exploitation d'un fichier CSV en Python avec le module CSV

L'utilisation d'un tableur peut être délicate lorsque le fichier CSV comporte un très grand nombre de lignes. Python permet de lire et d'extraire des informations d'un fichier CSV même très volumineux, grâce à des modules dédiés, comme csv.

Après avoir téléchargé le fichier starwars.csv, placez-le dans le dossier NSI\traitement_donnees.

import csv
fichier = open("starwars.csv","r", encoding='utf8')   # "r" pour read (lecture seule)
#on peut préciser l'encodage utf8

table = list(csv.reader(fichier,delimiter=","))
# conversion en liste, on précise le caractère de séparation
print(table)

En l'état, toutes les données ont été converties en chaînes de caractères, même la taille.

Au lieu d'utiliser la fonction csv.reader(), utilisons csv.DictReader(). Comme son nom l'indique, elle renverra une variable contenant des dictionnaires.

import csv
fichier = open("starwars.csv")
table = list(csv.DictReader(fichier,delimiter=",")) # liste de dictionnaires
print(table)
# Pour afficher C-3PO, le 'name' du dictionnaire 2
print(table[1]['name'])

Entraînement 1:

Comment accéder à la planète natale de Dooku ?

Voir une solution

Entraînement 2:

Comment accéder à la taille de Chewbacca ?

Voir une solution

Entraînement 3:

A l'aide du code ci-dessous, créer une fonction convertir(personnage) qui va créer un nouveau dictionnaire de notre table précédente mais avec valeurs entières pour la masse et la taille.

import csv
fichier = open("starwars.csv")
table = list(csv.DictReader(fichier,delimiter=","))

def convert(personnage):
    height = int(personnage['height'])

    return {'name':personnage['name'],'height':..... ,'mass':....,'homeworld':......,'spacies':....}

# On définit le dictionnaire valide par compréhension
table_valide = [convert(ligne) for ligne in table]

Entraînement 4:

Implémenter une fonction pour rechercher les noms des individos de plus de 2m.

Voir une solution

Entraînement 5 :

Implémenter une fonction qui affiche les informations uniquement pour les individus venant d'une planète précise.

Voir une solution

Entraînement 6 :

Implémenter une fonction qui affiche les individus triés par taille.

Entraînement 7:

Implémenter une fonction qui affiche les humains triés par taille

Savoir faire

  • Importer une table depuis un fichier texte tabulé ou un fichier CSV.
  • Trier une table suivant une colonne.
  • Construire une nouvelle table en combinant les données de deux tables.