Niveau 09 — Automatisation, APIs et données

Objectif du niveau

À la fin de ce niveau, ton Python sort de son bocal : tu sais installer des bibliothèques tierces dans un environnement virtuel (venv + pip), interroger une API publique avec requests (HTTP GET, paramètres, JSON), lire et écrire des fichiers CSV, et automatiser de vraies corvées de ta machine (renommer des fichiers en masse, générer un rapport automatique). Tu sais aussi faire tes premiers pas d'analyse de données : charger un CSV, filtrer, agréger, sortir des chiffres utiles.

Prérequis

Durée indicative et avertissement honnête

3 semaines à raison de 30–60 min par jour.

C'est le niveau le plus motivant (ton code fait ENFIN des choses visibles et utiles) mais il introduit une catégorie de difficulté nouvelle : le monde extérieur ne coopère pas. Une API renvoie une erreur 429, le JSON n'a pas la clé attendue, le CSV a une colonne vide, le réseau tombe. Jusqu'ici, tes bugs venaient de ton code ; maintenant ils viennent aussi des données des autres — et il faut coder défensivement. Autre friction réelle et assumée : venv sous Windows (activation, quel Python tourne, pip du bon environnement) fait transpirer tout le monde au début. La leçon 09-1 y consacre le temps nécessaire ; ne la survole pas, tout le reste du niveau en dépend. Avertissement sécurité au passage : un script qui renomme ou supprime des fichiers peut faire de vrais dégâts — on teste TOUJOURS sur un dossier bac-à-sable d'abord.

Leçons prévues

Chaque leçon suivra le template 17 sections (lessons/TEMPLATE_LECON.md).

TitreNotions couvertesStatut
09-1pip et environnements virtuelsPourquoi isoler les dépendances, créer/activer/désactiver un venv (spécificités Windows), pip install, pip list, requirements.txt, vérifier QUEL Python tourne, ne jamais committer le venv
09-2requests et HTTP GETInstaller requests, faire un GET, codes de statut (200, 404, 429, 500), response.json(), paramètres d'URL, timeout, gérer les échecs réseau avec try/except
09-3JSON et APIs publiquesStructure JSON ↔ dicts/listes Python, naviguer dans du JSON imbriqué, json.load/json.dump, consommer une API publique réelle (météo, pays…), coder défensif (.get, clés manquantes)
09-4CSV — lire, écrire, analyserModule csv (reader, DictReader, writer), en-têtes, types (tout est chaîne !), filtrer et agréger (totaux, moyennes, comptages), produire un CSV de sortie ; introduction honnête : quand passer à pandas (⏩ hors méthode)
09-5Automatiser de vraies tâchesParcourir des dossiers avec pathlib.glob, renommage de fichiers en masse (avec dossier bac-à-sable et mode « dry run »), générer un rapport automatique (API/CSV → fichier texte ou CSV), assembler un script d'automatisation complet

Pièges et erreurs emblématiques du niveau

Mini-projets du niveau

Fiches détaillées dans /projects.

Critères de sortie

Commit de fin de niveau

git add lessons/level-09-automatisation-apis-donnees
git commit -m "exercises: complete level 09 (automation, APIs, data)"