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 : Statistiques de Traitement de Fichiers

Apprendre Python : Statistiques de Traitement de Fichiers
Statistiques de Traitement de Fichiers

Suivre l'activité de votre script

À la fin d’un traitement de fichiers, il peut être utile d’avoir un résumé chiffré pour contrôler que tout s’est bien déroulé.

Ajout de statistiques simples

import os
import glob
import shutil
import argparse
import datetime

parser = argparse.ArgumentParser()
parser.add_argument("--dossier", type=str, default="logs/")
parser.add_argument("--mot", type=str, default="erreur")
parser.add_argument("--sortie", type=str, default="résultat.txt")
args = parser.parse_args()

archive = "archives/"
os.makedirs(archive, exist_ok=True)
date = datetime.datetime.now().strftime("%Y-%m-%d")

resultats = []
compteurs = {
    "fichiers_traités": 0,
    "lignes_lues": 0,
    "lignes_filtrées": 0
}

for fichier in glob.glob(args.dossier + "*.txt"):
    compteurs["fichiers_traités"] += 1
    with open(fichier, "r") as f:
        for ligne in f:
            compteurs["lignes_lues"] += 1
            if args.mot.lower() in ligne.lower():
                resultats.append(f"{os.path.basename(fichier)} : {ligne.strip()}")
                compteurs["lignes_filtrées"] += 1
    shutil.move(fichier, f"{archive}{date}_{os.path.basename(fichier)}")

with open(args.sortie, "w") as out:
    for ligne in resultats:
        out.write(ligne + "\n")

# Affichage des statistiques
print("=== STATISTIQUES ===")
print(f"Fichiers traités : {compteurs['fichiers_traités']}")
print(f"Lignes lues      : {compteurs['lignes_lues']}")
print(f"Lignes filtrées  : {compteurs['lignes_filtrées']}")
        

Avantages

  • Permet de vérifier que tout a bien été traité
  • Utile pour le suivi dans des scripts automatisés
  • Peut être étendu pour générer des rapports journaliers

Dans la prochaine leçon, nous apprendrons à enregistrer ce rapport dans un fichier log journalier avec timestamp.

© 2024 Codez avec moi

Aucun commentaire:

Enregistrer un commentaire