Planifier l'exécution automatique de ses scripts
Introduction
Vous avez écrit un super script Python qui télécharge automatiquement la météo du jour et l'enregistre dans un fichier. Génial ! Mais chaque matin, vous devez penser à double-cliquer sur le script pour le lancer... et parfois vous oubliez.
Votre défi
Comment faire pour que ce script se lance TOUT SEUL, chaque jour à 7h du matin, sans que vous ayez besoin d'y penser ?
Jusqu'à présent, vous avez appris à écrire des scripts Python qui automatisent des tâches répétitives. Mais il manque une pièce essentielle du puzzle : le déclenchement automatique. Dans cette leçon, vous allez découvrir comment faire en sorte que vos scripts s'exécutent seuls, à intervalle régulier, sans aucune intervention humaine.
Pourquoi planifier ses scripts ?
Un script qui doit être lancé manuellement n'est qu'à moitié automatisé. La vraie magie de l'automatisation, c'est quand votre ordinateur travaille pour vous, même quand vous dormez !
🎯 En pratique: Un script de sauvegarde de fichiers, un rapport envoyé par email tous les lundis, un nettoyage automatique de dossiers temporaires... tout cela peut être planifié pour s'exécuter sans vous.
Le principe général
Voici le processus global, quel que soit votre système d'exploitation :
⚠️ Attention: Il est essentiel de tester votre script manuellement plusieurs fois avant de le planifier. Un script planifié qui échoue silencieusement peut passer inaperçu pendant des jours !
Les outils de planification selon votre système
Chaque système d'exploitation possède son propre outil pour planifier des tâches :
| Système | Outil intégré | Interface | Niveau de difficulté |
|---|---|---|---|
| Windows | Planificateur de tâches | Graphique (fenêtres) | Facile |
| macOS | cron ou launchd | Ligne de commande | Intermédiaire |
| Linux | cron (crontab) | Ligne de commande | Intermédiaire |
Planifier sur Windows
Sur Windows, l'outil s'appelle le Planificateur de tâches (Task Scheduler). Voici les étapes principales :
- Ouvrez le menu Démarrer et tapez "Planificateur de tâches"
- Cliquez sur "Créer une tâche de base"
- Donnez un nom à votre tâche (ex : "Rapport météo quotidien")
- Choisissez le déclencheur (quotidien, hebdomadaire, etc.)
- Indiquez le programme à lancer :
python.exe - Ajoutez le chemin de votre script en argument
1# Chemin type à indiquer dans le Planificateur de tâches Windows :
2# Programme : C:\Python312\python.exe
3# Arguments : C:\Users\VotreNom\scripts\meteo.pyPlanifier sur Linux ou macOS avec cron
Sur ces systèmes, on utilise généralement cron, un outil qui exécute des tâches à des horaires précis définis dans un fichier appelé crontab.
Pour éditer votre crontab, ouvrez un terminal et tapez :
1crontab -ePuis ajoutez une ligne comme celle-ci :
1# Format : minute heure jour mois jour_semaine commande
20 7 * * * /usr/bin/python3 /home/utilisateur/scripts/meteo.pyCette ligne signifie : "exécute ce script tous les jours à 7h00 précises".
Comprendre la syntaxe cron
💡 À retenir: L'astérisque
*dans cron signifie "à chaque fois" pour ce champ. Si vous voulez lancer un script uniquement le lundi, vous mettrez1dans le champ "jour de la semaine" (0 = dimanche, 1 = lundi, etc.).
Exemple pratique complet
Imaginons que vous ayez ce script Python simple qui écrit la date et l'heure dans un fichier journal :
1# fichier : journal.py
2from datetime import datetime
3
4with open("journal.txt", "a") as fichier:
5 maintenant = datetime.now().strftime("%d/%m/%Y %H:%M:%S")
6 fichier.write(f"Script exécuté le {maintenant}\n")
7
8print("Journal mis à jour !")Pour le planifier toutes les heures sur Linux/macOS, la ligne crontab serait :
10 * * * * /usr/bin/python3 /home/utilisateur/journal.pyTestez la logique de planification avec cet outil interactif :
Simulateur de planification cron
Choisissez une heure et une fréquence pour voir la syntaxe cron correspondante
Bonnes pratiques pour vos scripts planifiés
Avant de laisser un script tourner seul, voici quelques conseils essentiels :
- Utilisez des chemins absolus (ex:
/home/utilisateur/script.py) plutôt que relatifs, car les tâches planifiées ne connaissent pas votre dossier de travail actuel - Ajoutez des logs pour savoir si le script s'est bien exécuté (écrivez dans un fichier
.log) - Gérez les erreurs avec des blocs
try/exceptpour éviter les plantages silencieux - Testez régulièrement que la tâche planifiée fonctionne toujours
1# Exemple avec gestion d'erreur et log
2import logging
3from datetime import datetime
4
5logging.basicConfig(filename="script.log", level=logging.INFO)
6
7try:
8 # Votre code d'automatisation ici
9 logging.info(f"Succès le {datetime.now()}")
10except Exception as erreur:
11 logging.error(f"Erreur le {datetime.now()} : {erreur}")Le saviez-vous ?
L'outil cron doit son nom au mot grec 'chronos' qui signifie 'temps'. Il a été créé en 1975 pour Unix, et 50 ans plus tard, il est toujours utilisé aujourd'hui pour planifier des millions de tâches automatiques dans le monde !
— Histoire des systèmes Unix
💡 À retenir: Que vous soyez sur Windows, macOS ou Linux, le principe est toujours le même : indiquer quel programme lancer (Python), quel script exécuter, et à quelle fréquence.
⚠️ Attention: N'oubliez pas que l'ordinateur doit être allumé et connecté (si votre script a besoin d'internet) au moment prévu pour que la tâche planifiée puisse s'exécuter !
Mini-quiz
Quel outil est utilisé sur Linux et macOS pour planifier des tâches automatiques ?
En bref
- 1Sur Windows, on utilise le Planificateur de tâches ; sur Linux/macOS, on utilise cron via la commande crontab -e.
- 2La syntaxe cron suit le format 'minute heure jour mois jour_semaine' où l'astérisque * signifie 'à chaque fois'.
- 3Pensez toujours à utiliser des chemins absolus, ajouter des logs et gérer les erreurs dans vos scripts avant de les planifier.