Lecture libre, sans compteChapitre 4 · Aller plus loin dans l'automatisation

Planifier l'exécution automatique de ses scripts

Introduction

Mise en situation

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èmeOutil intégréInterfaceNiveau de difficulté
WindowsPlanificateur de tâchesGraphique (fenêtres)Facile
macOScron ou launchdLigne de commandeIntermédiaire
Linuxcron (crontab)Ligne de commandeIntermédiaire

Planifier sur Windows

Sur Windows, l'outil s'appelle le Planificateur de tâches (Task Scheduler). Voici les étapes principales :

  1. Ouvrez le menu Démarrer et tapez "Planificateur de tâches"
  2. Cliquez sur "Créer une tâche de base"
  3. Donnez un nom à votre tâche (ex : "Rapport météo quotidien")
  4. Choisissez le déclencheur (quotidien, hebdomadaire, etc.)
  5. Indiquez le programme à lancer : python.exe
  6. Ajoutez le chemin de votre script en argument
python
1# Chemin type à indiquer dans le Planificateur de tâches Windows :
2# Programme : C:\Python312\python.exe
3# Arguments : C:\Users\VotreNom\scripts\meteo.py

Planifier 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 :

bash
1crontab -e

Puis ajoutez une ligne comme celle-ci :

bash
1# Format : minute heure jour mois jour_semaine commande
20 7 * * * /usr/bin/python3 /home/utilisateur/scripts/meteo.py

Cette 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 mettrez 1 dans 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 :

python
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 :

bash
10 * * * * /usr/bin/python3 /home/utilisateur/journal.py

Testez 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/except pour éviter les plantages silencieux
  • Testez régulièrement que la tâche planifiée fonctionne toujours
python
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

Mini-Quiz
Question 1 / 3

Quel outil est utilisé sur Linux et macOS pour planifier des tâches automatiques ?

En bref

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.