Lire un fichier à colonnes variables
Exercice · informatique (tronc commun des prépas scientifiques), chapitre 4 — Modules, fichiers et données
Énoncé
Un fichier stations.csv contient sur chaque ligne station;t1;t2;...;tk où le nombre de mesures de température varie selon les lignes. Écrire un lecteur qui renvoie pour chaque station son nombre de mesures, sa moyenne et son maximum. Tracer les résultats sous forme de diagramme en barres.
Corrigé
import matplotlib.pyplot as plt
def rapport_stations(nom_fichier: str) -> dict:
rapport = {}
with open(nom_fichier, "r") as f:
for ligne in f:
ligne = ligne.strip()
if ligne == "":
continue
champs = ligne.split(";")
nom = champs[0]
# Conversion des éléments restants de la ligne
mesures = [float(val) for val in champs[1:]]
rapport[nom] = (len(mesures), sum(mesures) / len(mesures), max(mesures))
return rapport
# Tracé graphique
rapport = rapport_stations("stations.csv")
stations = list(rapport)
moyennes = [rapport[st][1] for st in stations]
plt.bar(stations, moyennes)
plt.ylabel("Température moyenne (°C)")
plt.title("Relevé moyen par station")
plt.show()Les autres exercices de ce chapitre Le cours du chapitre
Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.