Rendre votre script personnalisable depuis le terminal
Nous allons utiliser le module argparse
de Python pour permettre à l’utilisateur de passer des paramètres lors de l’exécution du script.
Script avec paramètres en ligne de commande
import os import glob import shutil import argparse import datetime # Définir les arguments parser = argparse.ArgumentParser(description="Filtrer les fichiers texte par mot-clé.") parser.add_argument("--dossier", type=str, default="logs/", help="Dossier des fichiers à traiter") parser.add_argument("--mot", type=str, default="ERREUR", help="Mot-clé à rechercher") parser.add_argument("--sortie", type=str, default="resultats.txt", help="Nom du fichier de sortie") args = parser.parse_args() # Préparation dossier_archive = "archives/" os.makedirs(dossier_archive, exist_ok=True) date = datetime.datetime.now().strftime("%Y-%m-%d") resultats = [] # Traitement for fichier in glob.glob(args.dossier + "*.txt"): with open(fichier, "r") as f: for ligne in f: if args.mot.lower() in ligne.lower(): resultats.append(f"{os.path.basename(fichier)} : {ligne.strip()}") # Renommer et déplacer nom_arch = f"{date}_{os.path.basename(fichier)}" shutil.move(fichier, os.path.join(dossier_archive, nom_arch)) # Écriture du résultat with open(args.sortie, "w") as sortie: for ligne in resultats: sortie.write(ligne + "\n")
Exemple d’utilisation
python script.py --dossier logs/ --mot erreur --sortie erreurs_rapport.txt
Avantages
- Flexible : l’utilisateur choisit le mot-clé, le dossier, le fichier de sortie
- Réutilisable dans différents contextes
- Professionnel : meilleur contrôle pour les utilisateurs finaux
Dans la prochaine leçon, nous verrons comment générer des statistiques simples (nombre de fichiers, lignes filtrées, etc.) à la fin du traitement.
Aucun commentaire:
Enregistrer un commentaire