Automatiser un rapport à partir de données tabulaires
Introduction
Vous êtes stagiaire dans une petite entreprise de vente en ligne. Chaque lundi, votre responsable vous envoie un fichier CSV avec toutes les ventes de la semaine et vous demande un résumé clair : total des ventes, produit le plus vendu, et un fichier propre à partager avec l'équipe.
Votre défi
Faire ce travail à la main prend 30 minutes chaque semaine et génère souvent des erreurs de calcul. Comment automatiser tout ce processus avec Python en quelques lignes de code ?
Dans cette leçon, nous allons apprendre à combiner trois étapes clés pour transformer un fichier de données brutes en un rapport automatique et prêt à l'emploi : la lecture, le traitement et l'export des données.
Le cycle d'automatisation d'un rapport
Tout script d'automatisation de rapport suit généralement le même schéma, quel que soit le contenu du fichier :
💡 À retenir : Ce schéma en 5 étapes (lire → nettoyer → calculer → générer → exporter) est un modèle universel que vous pouvez réutiliser pour n'importe quel projet d'automatisation de données.
Étape 1 : Lire les données
En Python, le module csv (ou la bibliothèque pandas pour aller plus loin) permet de lire facilement un fichier tabulaire.
1import csv
2
3# Lecture du fichier CSV contenant les ventes
4with open("ventes.csv", newline="", encoding="utf-8") as fichier:
5 lecteur = csv.DictReader(fichier)
6 ventes = list(lecteur)
7
8print(ventes[0])
9# Exemple de sortie : {'produit': 'Clavier', 'quantite': '3', 'prix_unitaire': '25'}⚠️ Attention : Les valeurs lues depuis un CSV sont toujours des chaînes de caractères (texte), même si elles ressemblent à des nombres ! Il faut les convertir avec
int()oufloat()avant de faire des calculs.
Étape 2 : Traiter les données
Une fois les données chargées, on peut calculer des indicateurs utiles : total des ventes, produit le plus vendu, moyenne, etc.
1total_ventes = 0
2compteur_produits = {}
3
4for ligne in ventes:
5 quantite = int(ligne["quantite"])
6 prix = float(ligne["prix_unitaire"])
7 total_ventes += quantite * prix
8
9 # Compter les quantités vendues par produit
10 produit = ligne["produit"]
11 compteur_produits[produit] = compteur_produits.get(produit, 0) + quantite
12
13# Trouver le produit le plus vendu
14produit_star = max(compteur_produits, key=compteur_produits.get)
15
16print(f"Total des ventes : {total_ventes:.2f} €")
17print(f"Produit le plus vendu : {produit_star} ({compteur_produits[produit_star]} unités)")Comparaison des approches possibles
| Méthode | Simplicité | Puissance | Cas d'usage |
|---|---|---|---|
csv (natif Python) | ⭐⭐⭐⭐⭐ | ⭐⭐ | Petits fichiers, scripts simples |
pandas | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | Gros volumes, analyses complexes |
| Excel manuel | ⭐⭐⭐⭐ | ⭐ | Ponctuel, sans automatisation |
🎯 En pratique : Pour débuter, le module
csvsuffit largement. Quand vos besoins grandissent (milliers de lignes, calculs statistiques avancés), passez àpandas.
Étape 3 : Exporter le rapport
Dernière étape : sauvegarder le résultat dans un nouveau fichier, lisible par toute l'équipe.
1with open("rapport_ventes.txt", "w", encoding="utf-8") as rapport:
2 rapport.write("=== RAPPORT HEBDOMADAIRE DES VENTES ===\n")
3 rapport.write(f"Total des ventes : {total_ventes:.2f} €\n")
4 rapport.write(f"Produit le plus vendu : {produit_star}\n")
5 rapport.write(f"Quantité vendue : {compteur_produits[produit_star]} unités\n")
6
7print("Rapport généré avec succès ✅")Visualisons les ventes par produit
Quantités vendues par produit
Testez le calcul vous-même
Calculateur de total de vente
Entrez une quantité et un prix unitaire pour voir le calcul que fait votre script Python
Le processus complet en une vue
Le saviez-vous ?
Le format CSV (Comma-Separated Values) existe depuis les années 1970 ! Il a été popularisé bien avant Excel, à l'époque des premiers systèmes de gestion de données sur mainframe, et reste aujourd'hui l'un des formats les plus utilisés au monde pour l'échange de données.
— Histoire des formats de données, standard IETF RFC 4180
Points clés à retenir
💡 À retenir : Automatiser un rapport revient toujours à enchaîner 3 blocs : lire, traiter, exporter. Une fois ce schéma maîtrisé, vous pouvez l'appliquer à n'importe quel type de données (ventes, notes, stocks, budgets...).
⚠️ Attention : Pensez toujours à gérer les erreurs possibles : fichier manquant, valeurs vides ou mal formatées. Un script robuste doit anticiper ces cas avec des blocs
try/except.
🎯 En pratique : Une fois votre script fonctionnel, vous pouvez le planifier pour qu'il s'exécute automatiquement chaque semaine (via le Planificateur de tâches Windows ou
cronsur Mac/Linux), sans intervention humaine !
Mini-quiz
Quel module Python permet de lire facilement un fichier CSV ?
- 1Automatiser un rapport suit un cycle en 3 étapes clés : lire les données, les traiter (calculs, tris), puis exporter le résultat.
- 2Le module 'csv' de Python permet de lire facilement des fichiers tabulaires, mais attention à convertir les valeurs texte en nombres avant tout calcul.
- 3Une fois le script fonctionnel, il peut être planifié pour s'exécuter automatiquement, éliminant ainsi les tâches répétitives et sources d'erreurs.