#!/usr/bin/env python3 """Supprime les fichiers CSV générés automatiquement dans l'arborescence des docs.""" from __future__ import annotations import argparse from pathlib import Path ROOT = Path(__file__).resolve().parents[1] def iter_csv_files(base: Path) -> list[Path]: if not base.exists(): return [] return [path for path in base.rglob("*.csv") if path.is_file()] def remove_files(files: list[Path], dry_run: bool) -> int: count = 0 for path in files: if dry_run: print(f"[DRY-RUN] {path.relative_to(ROOT)}") continue path.unlink(missing_ok=True) print(f"Supprimé : {path.relative_to(ROOT)}") count += 1 return count def main() -> None: parser = argparse.ArgumentParser(description="Supprime les fichiers CSV d'une arborescence.") parser.add_argument( "--root", type=Path, default=ROOT, help="Répertoire racine à nettoyer (par défaut : ./).", ) parser.add_argument( "--dry-run", action="store_true", help="Affiche les fichiers qui seraient supprimés sans les effacer.", ) args = parser.parse_args() root = args.root.resolve() csv_files = iter_csv_files(root) if not csv_files: print(f"Aucun fichier CSV trouvé sous {root}.") return removed = remove_files(csv_files, dry_run=args.dry_run) if args.dry_run: print(f"{len(csv_files)} fichier(s) CSV seraient supprimés.") else: print(f"✔ {removed} fichier(s) CSV supprimés.") if __name__ == "__main__": main()