1. L'idée de multitâche dans les applications
Alors, mes futurs maîtres de l’automatisation, revenons à notre cours sur Python et réjouissons-nous — on est déjà en train de créer des applications avec interface graphique grâce à Tkinter ! Dans cette leçon, on va apprendre comment rendre notre application encore plus puissante en ajoutant la possibilité d'exécuter d'autres scripts directement depuis l'interface utilisateur. Avouons-le, pouvoir lancer des tâches automatisées en un clic peut nous rendre un peu moins paresseux… ou, au contraire, nous enfermer dans un piège de pyjama à la maison. Mais voyons comment faire ça !
Concept de multitâche
Imagine le scénario suivant : tu as une application qui peut traiter des données automatiquement, faire du web scraping et générer des rapports. Mais à chaque fois que tu veux lancer un de tes scripts géniaux, tu dois jongler entre les fenêtres. C'est comme ces vieilles télés où il fallait se lever pour appuyer sur un bouton pour changer de chaîne... l'évolution nous a offert la télécommande, et ton GUI Python fera le boulot d'exécution de scripts pour toi !
Comprendre l'exécution de scripts externes
Tkinter nous permet de connecter l'interface avec des scripts externes, ce qui est vraiment pratique. On peut le faire à l'aide du module standard subprocess
. Ce module permet de lancer de nouveaux processus, d'exécuter des commandes dans un shell et même d'interagir avec eux. Faisons le premier pas vers notre "centre de contrôle d'automatisation".
import subprocess
# Exemple simple pour exécuter un script Python
subprocess.run(["python", "votre_script.py"])
2. Sélection des fichiers et création de l'interface de lancement
Interface de sélection de script
Pour commencer, on veut que l'utilisateur puisse sélectionner le fichier script qu'il veut exécuter. Le moyen le plus pratique pour ça est d'utiliser le widget FileDialog
du module tkinter.filedialog
. Ce widget ouvrira une fenêtre standard de sélection de fichier, comme un bon serveur qui te donne le fichier que tu choisis.
import tkinter as tk
from tkinter import filedialog
root = tk.Tk()
root.withdraw() # On ne veut pas afficher la fenêtre principale
file_path = filedialog.askopenfilename(title="Choisissez un script à exécuter")
print(f"Fichier sélectionné : {file_path}")
2.2 Création d'un bouton de lancement
Ajoutons maintenant un bouton qui, après la sélection d’un fichier, te permet de le lancer.
def launch_script():
file_path = filedialog.askopenfilename(title="Choisissez un script à exécuter")
if file_path:
subprocess.run(["python", file_path])
root = tk.Tk()
launch_button = tk.Button(root, text="Lancer le script", command=launch_script)
launch_button.pack(pady=20)
root.mainloop()
Maintenant, on a un bouton qui ouvre la boîte de dialogue pour sélectionner un fichier, et une fois un fichier sélectionné, il est exécuté dans un processus séparé. Génial !
3. Application pratique
Créer une interface de gestion
On a vu comment lancer un script. Ajoutons des fonctionnalités de retour et de gestion pour que notre application ait l'air plus professionnelle.
import tkinter as tk
from tkinter import filedialog, messagebox
import subprocess
def launch_script():
file_path = filedialog.askopenfilename(title="Choisissez un script à exécuter")
if file_path:
try:
result = subprocess.run(["python", file_path], capture_output=True, text=True)
messagebox.showinfo("Résultat de l'exécution", f"Script exécuté avec succès !\n\n{result.stdout}")
except subprocess.CalledProcessError as e:
messagebox.showerror("Erreur d'exécution", f"Une erreur est survenue lors de l'exécution du script :\n\n{e.stderr}")
root = tk.Tk()
launch_button = tk.Button(root, text="Lancer le script", command=launch_script)
launch_button.pack(pady=20)
root.mainloop()
Gestion des erreurs
On ne vit pas dans un monde parfait où il n’y a jamais d’erreurs. Gardons ça en tête et ajoutons une gestion des erreurs pour que notre utilisateur ne casse pas son écran à cause de plantages "non évidents". On utilise try-except
pour afficher un message d’erreur si le script n’a pas pu être exécuté.
Retourner le résultat d'exécution
En plus de lancer le script, on capture le résultat d'exécution et on l’affiche à l'utilisateur, parce que franchement, on aime tous un peu de reconnaissance pour notre code. En réalité, c'est super utile pour déboguer et comprendre ce qui s’est passé.
4. À quoi ça sert ?
Le plus incroyable avec l’automatisation via une GUI, c’est sa polyvalence. Ton flux de travail devient plus organisé et efficace. Tu peux lancer du nettoyage de données, générer des rapports, même envoyer des emails — tout ça en un seul clic. Dans un environnement professionnel, ça veut dire moins de temps sur la routine et plus sur l’innovation. Lors d’un entretien, ça peut faire la différence en montrant ta productivité réelle et tes compétences d’intégration.
Bonus : notre interface peut également lancer non seulement des scripts Python, mais pratiquement n'importe quel script, y compris des fichiers bash ou batch. En gros, tant que le système sait comment les exécuter.
Prends cet exemple, ajoute une touche de commentaires magiques, et ton collègue pensera sûrement que tu caches quelque chose d’important. Mais pour l’instant, en avant vers la création de ton automate idéal !
Pour aller plus loin, tu peux consulter la documentation officielle de Tkinter et la documentation du module subprocess, où tu trouveras encore plus de détails intéressants et d'exemples d'utilisation.
GO TO FULL VERSION