Automatisation et scripting avec Python
Automatiser des tâches répétitives avec Python : manipulation de fichiers, emails, scraping web, interaction avec des APIs. Gagnez du temps grâce au scripting.
Dernière mise à jour le 16/03/2026
Public visé
- Développeurs, analystes ou professionnels maîtrisant les bases de Python souhaitant automatiser des tâches répétitives et gagner en productivité.
- Personnes ayant suivi les formations Python : les fondamentaux du langage et Python : programmation orientée objet et traitement de données ou disposant d'une expérience Python équivalente.
- Data analysts, administrateurs système ou chefs de projet techniques voulant automatiser des rapports, des alertes ou des échanges de données.
- Toute personne souhaitant écrire des scripts Python utiles et déployables en conditions réelles.
Objectifs pédagogiques
- Automatiser la manipulation avancée de fichiers et de dossiers avec pathlib et shutil
- Envoyer des emails et des notifications depuis un script Python
- Extraire des données web avec requests et BeautifulSoup
- Automatiser un navigateur web avec Selenium pour les sites dynamiques
- Consommer des APIs REST depuis Python : authentification, pagination, gestion des erreurs
- Planifier l'exécution automatique de scripts avec schedule et cron
- Gérer les secrets et les variables d'environnement de manière sécurisée
- Concevoir et déployer des mini-projets d'automatisation complets et réutilisables
Prérequis
- Bonne maîtrise de Python : fonctions, listes, dictionnaires, fichiers, exceptions et notions de POO.
- Les formations Python : les fondamentaux du langage et Python : programmation orientée objet et traitement de données sont recommandées.
- Savoir utiliser le terminal et VS Code.
Programme détaillé
- pathlib.Path : parcourir, créer, déplacer et supprimer des fichiers et dossiers
- glob et rglob : lister des fichiers selon un motif dans une arborescence
- shutil : copier, déplacer, archiver et compresser des dossiers
- zipfile et tarfile : créer et extraire des archives
- Cas pratique : script d'archivage automatique des fichiers de plus de 30 jours
- filecmp : comparer des fichiers et des dossiers
- hashlib : calculer le hash d'un fichier pour détecter les modifications
- watchdog : surveiller un dossier et réagir aux changements en temps réel
- Cas pratique : script de synchronisation qui détecte et copie les fichiers modifiés
- smtplib : se connecter à un serveur SMTP et envoyer un email simple
- email.mime : composer un email multipart avec texte, HTML et pièces jointes
- Utiliser Gmail, Outlook ou un SMTP d'entreprise depuis Python
- Sécuriser les identifiants SMTP avec les variables d'environnement
- Cas pratique : envoi automatique d'un rapport PDF en pièce jointe
- Webhooks Slack : envoyer des messages dans un canal depuis un script
- Webhooks Discord : alertes et notifications dans un serveur
- Telegram Bot API : envoyer des messages via un bot Telegram
- Cas pratique : alerte automatique dans Slack quand un fichier d'erreur dépasse un seuil
- python-dotenv : charger les variables d'environnement depuis un fichier .env
- Ne jamais mettre de secrets dans le code source : les règles de base
- Valider les variables d'environnement au démarrage du script
- keyring : stocker des secrets dans le trousseau système
- Cas pratique : refactoriser un script avec des identifiants codés en dur vers .env
- Le module schedule : planifier des tâches récurrentes en Python pur
- Cron sur Linux : syntaxe, crontab -e, logs et gestion des erreurs
- Planificateur de tâches Windows : créer une tâche planifiée depuis le terminal
- Rendre un script robuste : gestion des exceptions, retries et logs
- Cas pratique : script de rapport hebdomadaire planifié avec cron et notification Slack
- GET et POST : envoyer des requêtes et lire les réponses
- Headers, cookies et sessions persistantes avec requests.Session
- Gérer les timeouts, les redirections et les erreurs HTTP
- Télécharger des fichiers en streaming depuis une URL
- Cas pratique : télécharger automatiquement des fichiers depuis une liste d'URLs
- Parser du HTML avec BeautifulSoup : find, find_all, select (CSS selectors)
- Naviguer dans l'arbre DOM : parents, siblings, children
- Extraire des attributs, du texte et des liens
- Respecter le robots.txt et les délais entre les requêtes
- Gérer les encodages et les caractères spéciaux
- Cas pratique : scraper les annonces d'un site de petites annonces et exporter en CSV
- Installer Selenium et configurer le WebDriver Chrome ou Firefox
- Naviguer, cliquer, remplir des formulaires et soumettre
- Attendre le chargement des éléments : WebDriverWait et expected_conditions
- Mode headless : exécuter Selenium sans interface graphique
- Gérer les popups, les iframes et les onglets multiples
- Prendre des captures d'écran automatiquement
- Exécuter du JavaScript depuis Selenium
- Cas pratique : scraper un site avec pagination JavaScript et exporter les données
- Anatomie d'une requête API REST : endpoint, headers, authentification, body
- Authentification : API key, Bearer token, OAuth2
- Paginer les résultats d'une API : limit, offset, cursor
- Gérer les erreurs et les rate limits : retry avec backoff exponentiel
- API GitHub : lister les dépôts, créer des issues automatiquement
- API Notion ou Airtable : synchroniser des données depuis Python
- API de géolocalisation ou météo : enrichir un jeu de données
- Cas pratique : script qui récupère des données depuis une API publique et génère un rapport
- openpyxl : lire, modifier et créer des fichiers Excel avec mise en forme
- pandas : lire un Excel, filtrer, calculer et réécrire
- python-docx : générer des documents Word depuis un template
- Cas pratique : générer automatiquement un rapport Word à partir de données Excel
- reportlab : créer des PDF avec texte, tableaux et images
- weasyprint : convertir du HTML/CSS en PDF
- PyPDF2 : fusionner, découper et annoter des PDF existants
- Cas pratique : générer des factures PDF automatiquement depuis un fichier CSV
- Configurer le logging : fichier de log rotatif avec RotatingFileHandler
- Structurer les logs : JSON logging pour une ingestion facile
- Gérer les exceptions de manière exhaustive sans bloquer le script
- Envoyer une alerte en cas d'erreur critique : email ou Slack automatique
- Cas pratique : ajouter un système de logging complet à un script existant
- Mini-projet 1 — Rapport automatique (2h) : script qui récupère des données depuis une API REST, les transforme, génère un rapport Excel et PDF, et l'envoie par email avec notification Slack, planifié avec cron ou schedule
- Mini-projet 2 — Alerte prix (2h) : script qui scrape les prix d'un produit sur un site e-commerce avec BeautifulSoup ou Selenium, compare avec un seuil défini dans un fichier .env, envoie une alerte Telegram ou email si le prix passe en dessous du seuil, et journalise toutes les vérifications dans un fichier de log
- Revue de code collective : robustesse, gestion des erreurs, lisibilité et sécurité des scripts
- Retour formateur individualisé sur les projets rendus
Compétences visées
- Écrire des scripts Python d'automatisation robustes avec gestion des erreurs et des logs
- Extraire et transformer des données depuis des pages web et des APIs REST
- Envoyer des notifications automatiques par email ou webhook
- Planifier des tâches récurrentes sur un serveur Linux ou Windows
- Sécuriser les scripts en production : secrets, variables d'environnement, logs
- Structurer un projet d'automatisation réutilisable et maintenable
Modalités et méthodes pédagogiques
Modalités d'évaluation
- En cours de formation : exercices pratiques et scripts corrigés à chaque module
- En fin de formation : réalisation de deux mini-projets d'automatisation complets et opérationnels
- Questionnaire d'auto-évaluation des acquis en fin de parcours
Critères d'évaluation
- Scripts fonctionnels et robustes avec gestion complète des exceptions et des cas limites
- Extraction correcte des données web avec BeautifulSoup ou Selenium selon le type de site
- Consommation fiable d'une API REST avec authentification et gestion de la pagination
- Sécurisation des secrets via variables d'environnement sans aucun identifiant dans le code source
- Logs structurés permettant de tracer l'exécution et les erreurs du script en production
Modalités de validation
Moyens pédagogiques et techniques
- Support de cours numérique mis à disposition des apprenants
- Dépôt GitHub de démonstration avec scripts d'exemple et corrections par module
- Environnement de développement : VS Code + Python 3.12+ + Chrome WebDriver
- Pour le distanciel : visioconférence (Zoom ou équivalent), partage d'écran, chat en direct
- Accès à la plateforme pédagogique LaPolaris (supports, ressources, émargement)
Accessibilité aux personnes en situation de handicap
Suivi et accompagnement
- Feuilles d'émargement signées par demi-journée (présentiel) ou émargement numérique (distanciel)
- Traçabilité des activités pédagogiques réalisées
- Attestation d'assiduité délivrée en fin de formation
- Suivi individuel via les exercices corrigés et les mini-projets de synthèse
Conditions d'accès
Délais d'accès
Autres formations en Python & Data
Python : POO et traitement de données
Approfondir Python avec la programmation orientée objet, la manipulation de fichiers (CSV, JSON), les modules standards et les bonnes pratiques de code.
Créer une API REST avec Python et FastAPI
Développer des APIs modernes et performantes avec FastAPI. Typage, validation, documentation automatique, base de données : le framework Python qui monte en puissance.
Introduction au machine learning avec Python
Découvrir les fondements du machine learning avec scikit-learn. Régression, classification, clustering, évaluation de modèles : une introduction concrète et appliquée.