Lecture libre, sans compteChapitre 3 · Automatiser le traitement de tableurs

Automatiser un rapport à partir de données tabulaires

Introduction

Mise en situation

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.

python
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() ou float() 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.

python
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éthodeSimplicitéPuissanceCas 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 csv suffit 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.

python
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 cron sur Mac/Linux), sans intervention humaine !

Mini-quiz

Mini-Quiz
Question 1 / 3

Quel module Python permet de lire facilement un fichier CSV ?

En bref
  • 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.