Cours 2
🎯 Objectifs du cours
📚 La bibliothèque CSV
import csv
liste_a_remplir = []
with open('communes.csv', newline='') as fichier_csv:
lecteur = csv.DictReader(fichier_csv, delimiter=',') # Objet DictReader (itérateur)
for ligne in lecteur:
liste_a_remplir.append(dict(ligne))
💡 Exemple pratique
import csv
def creer_liste_villes(nom_de_fichier : str) -> list:
villes = []
with open('communes.csv', newline='') as fichier_csv:
# Méthode DictReader qui permet de structurer les données contenues dans le fichier CSV
# en liste de dictionnaires où chaque descripteur (ou attribut) est renseigné.
lecteur = csv.DictReader(fichier_csv, delimiter=';')
for ligne in lecteur:
villes.append(dict(ligne))
code_commune_INSEE, nom_commune_postal, code_postal, latitude, longitude, code_commune, nom_commune, nom_commune_complet, code_departement, nom_departement, code_region, nom_region
code_commune_INSEE;nom_commune_postal;code_postal;latitude;longitude;code_commune;nom_commune;nom_departement
01001;L'Abergement-Clémenciat;01400;46.1667;4.9;1;L'Abergement-Clémenciat;Ain
01002;L'Abergement-de-Varey;01640;46.05;5.4833;1;L'Abergement-de-Varey;Ain
...
📊 Projection de données
# Exemple : Afficher le nom des villes
for ligne in villes: # Pour chaque ligne dans la liste des villes
print(ligne["nom_commune"]) # Affiche la valeur associée à la clé 'nom_commune'
# Afficher le nom de toutes les villes
for ligne in villes:
print(ligne["nom_commune"])
# Afficher le département de chaque ville
for ligne in villes:
print("La ville ", ligne["nom_commune"], " est dans le département : ", ligne["nom_departement"])
🎯 Sélection de données
Cela permet donc d'obtenir des informations ou de réaliser des traitements sur les données d'un fichier suivant divers critères (par exemple sur les villes).
# Afficher le nom des villes qui sont dans le département 59
for ligne in villes:
if ligne['code_departement'] == '59':
print(ligne["nom_commune"])
# Afficher les noms des villes commençant par la lettre C
for ligne in villes:
if ligne["nom_commune"][0] == "C":
print(ligne["nom_commune"])
🎯 Exercices pratiques
Afficher les noms des communes
Écrire une fonction afficher_noms_communes qui prend une liste de dictionnaires villes en paramètre et affiche le nom de toutes les communes.
Communes par code postal
Écrire une fonction afficher_communes_par_code_postal qui prend une liste de dictionnaires villes et une chaîne code_postal en paramètre, et affiche les noms des communes ayant ce code postal.
Communes avec coordonnées
Écrire une fonction afficher_communes_avec_coordonnees qui prend une liste de dictionnaires villes en paramètre et affiche pour chaque commune son nom, sa latitude et sa longitude.
Communes par département
Écrire une fonction afficher_communes_par_departement qui prend une liste de dictionnaires villes et une chaîne departement en paramètre, et affiche les noms des communes du département donné.
Noms avec longueur minimale
Écrire une fonction afficher_noms_longueur_min qui prend une liste de dictionnaires villes et un entier longueur en paramètre, et renvoie la liste des noms des communes ayant un nom d'au moins longueur caractères.
Communes par latitude
Écrire une fonction afficher_communes_par_latitude qui prend une liste de dictionnaires villes et une latitude maximale max_latitude en paramètre, et affiche les noms des communes ayant une latitude inférieure à max_latitude.