TP9 Fichiers CSV
TP9 Fichiers CSV
TP9 Fichiers CSV
Pour comprendre le comportement de ces fonctions, il faut inventer des exemples un peu ’tordus’ en essayant
INFO-CIRCLE de tester plein de cas.
Exercice 2
Compléter la fonction converti qui prend comme argument une ligne de notre fichier (qui peut comprendre des blancs, à
retirer) et retourne (nom_pays, population, superficie) où la population est un int et superficie un int.
Chemins
Il existe deux manières d’indiquer la position exacte d’un fichier :
• son chemin absolu, qui commence sous windows par une lettre de lecteur.
Par exemple C:\Users\moi\Documents\TP9.pdf
• son chemin relatif, c’est à dire son emplacement par rapport au dossier de travail courant. Ce dossier courant est
déterminé au lancement du programme (quand on lance python, il s’agit au départ du dossier contenant le programme
python.exe) et peut être modifié à tout moment.
1 import os
2 os.getcwd() # retourne, sous forme d'une chaîne de caractère
3 # le nom du dossier courant
Exercice 3
Dans Spyder, exécutez le fichier tp9.py en utilisant F5 ou la flèche verte. Observez attentivement la ligne
runfile qui vient d’apparaître dans la console. Elle contient
• le chemin absolu vers votre script python
• le changement de dossier de travail (working directory, ou encore wdir)
Vérifier maintenant quel est le dossier (ou répertoire) courant et que ce dossier contient bien notre fichier de données
(pays.csv). Ainsi le chemin relatif de ces fichiers est très simple : il s’agit seulement du nom.
Il faut choisir le mode de lecture (texte entier ou par lignes) : si vous exécutez les deux commandes de lecture à la suite,
la variable lignes contiendra une liste vide car le fichier aura déjà été lu.
Pour éviter d’avoir à fermer le fichier manuellement (et avec cette syntaxe, même s’il y a une erreur le fichier sera correctement
fermé) :
Exercice 4
Créer une fonction lit_pays(chemin) qui prend en argument le chemin du fichier csv (ce chemin est une chaîne) et retourne
3 listes : celle des noms de pays, celle des populations et celle des superficie.
On n’oubliera pas de fermer le fichier ouvert après lecture.
Exercice 5
Compléter la fonction somme qui prend une liste de nombres et retourne la somme de tous ces nombres.
Exercice 6
Créer une liste proportions qui contient un nombre par pays de notre fichier : la proportion de la population de ce pays par
rapport à la population mondiale. Ce nombre devra être un flottant entre 0 et 1 et la somme des proportions doit être 1.
Exercice 7 (Bonus)
Trouver le pays ayant la plus forte et celui ayant la plus faible densité de population et afficher leurs noms.
Un dictionnaire est un autre type de données utilisable en python. Il permet de stocker des valeurs
INFO-CIRCLE associées à des clés.
Plus précisément, un dictionnaire est un ensemble de (clé, valeur) où chaque valeur est associée à exactement
une clé.
1 d = {} # un dictionnaire vide
• Les clés utilisables pour nous sont : des chaînes, des nombres. En toute généralité, tout objet non modifiable peut être
utilisé comme clé.
• Les valeurs sont des objets python quelconques (nous connaissons : nombres entiers ou flottants, booléen, chaîne, liste,
dictionnaire)
Pour tester si une clé est présente dans un dictionnaire (et avec le dictionnaire d du cadre précédent)
TP 9 : lecture et écriture de fichiers csv 3/3
Exercice 8
Compléter les fonctions converti_dico et lit_dico.
Exercice 9
Ce type de lecture de fichier est tellement commune qu’il existe une bibliothèque python qui réalise déjà ce traitement.
La fonction lit_csv utilise la bibliothèque (aussi appelé module) csv pour réaliser le traitement de l’exercice précédent en
2 lignes.
Observer attentivement la valeur de retour et identifier un problème dans la donnée retournée.
Exercice 10
Rectifier la fonction lit_csv pour qu’elle retourne les mêmes dictionnaires que lit_dico.
Exercice 11
Ajouter à chaque pays les données suivantes : proportion (exo 6) et densité de population qui seront des nombres flottants.
On complétera la fonction prévue à cet effet.
IV Ecriture
Exercice 12
Ecrire dans le fichier densité.csv les données : nom du pays ; densité.
On pourra au choix donner des titres, ou non, aux colonnes dans la première ligne.
Pour écrire dans un fichier situé à l’adresse chemin :
Exercice 13
Créer le fichier pays_complet.csv qui contient en plus les données ajoutées à l’exercice 11.
V Bonus
Trouver comment tracer un cercle de centre donné et rayon donné, comment tracer un polygone régulier à n côtés, une droite
d’équation y = ax + b (on donne a, b), cette même droite mais limitée à un rectangle donné (comment se donner un rectangle
le plus efficacement possible ?).