Explorer le code, créer des solutions et partager des connaissances dans le monde fascinant du développement logiciel.

mardi 24 juin 2025

Apprendre Python : Interface en Ligne de Commande

Apprendre Python : Interface en Ligne de Commande
Interface en Ligne de Commande

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.

© 2024 Codez avec moi

Aucun commentaire:

Enregistrer un commentaire