Outil de reporting

Cameron FLORENCE 2025

Création d'un outil de reporting pour la gestion de gros fichiers sur son disque dur.

Projet outil de reporting

Idée de départ

Il arrive que le disque dur d’un PC (Windows, MacOS ou Linux) ne dispose plus de beaucoup d’espace libre. Ce problème peut empêcher l’installation de nouvelles applications voire carrément empêcher la machine de démarrer ou de se mettre à jour…

Pour gagner rapidement de l’espace libre, il suffit de supprimer quelques « gros » fichiers peu ou plus utilisés mais toujours présents sur le disque dur. Ces fichiers sont souvent des vidéos, de grosses photos, des images d’installations ou encore des « sauvegardes » de clés USB. La difficulté est de localiser ces « gros » fichiers sur le disque durs.

L’idée de ce projet est de créer un outil de reporting qui va scanner le disque dur et lister les fichiers les plus volumineux. Il doit être capable de scanner un disque dur externe ou un répertoire spécifique sur le disque dur principal.

Technologies et matériel utilisés

  • Python
  • Pathlib
  • PyQt5
  • PyQtChart

Répartition des rôles

Groupe programmation :

Objectifs : créer un outil de reporting

  • Arthur : système d'analyse des fichiers + script PowerShell
  • Cameron : interface graphique + script PowerShell

Déroulement du projet

Arthur a initié le projet en développant un script Python visant à analyser les fichiers présents dans un dossier donné. Ce script permet non seulement d'examiner l'ensemble des fichiers, mais également de fixer une limite de taille afin de cibler les fichiers les plus volumineux.

De mon côté, j'ai conçu un autre script Python intégrant une interface graphique facilitant la sélection du dossier à analyser. Cette interface, développée avec PyQt5, permet une interaction plus intuitive et ergonomique pour l'utilisateur.

Une fois ces éléments en place, nous avons entamé le développement d'un script PowerShell chargé d'exécuter les différents scripts Python au bon moment, assurant ainsi une gestion fluide du processus d'analyse. En complément, nous avons également conçu un autre script PowerShell permettant à l'utilisateur de confirmer la suppression des fichiers identifiés, garantissant une manipulation sécurisée des données.

Logiciel après analyse :

Image logiciel après analyse

Liste des fichiers :

Image logiciel liste des fichiers

Menu suppression :

Image logiciel menu suppression

Contraintes et solutions

Nous avons rencontré plusieurs difficultés lors du développement du script PowerShell destiné à la suppression des fichiers. Sa mise en place s'est avérée plus complexe que prévu, mais après plusieurs ajustements et tests, nous sommes parvenus à le faire fonctionner correctement.

Cependant, un autre défi est apparu : lorsque l'outil analyse un grand nombre de fichiers, nous n'avons pas réussi à les afficher sur plusieurs pages. L'affichage reste limité, ce qui complique la visualisation et la gestion des fichiers détectés.

Résultats

  • Outil d'analyse fonctionnelle
  • Suppression des fichiers fonctionnelle

Leçons tirées du projet

Au cours du développement de cet outil de reporting, j’ai approfondi mes connaissances en programmation, notamment en Python et PowerShell. J’ai appris à structurer un projet en plusieurs scripts complémentaires, assurant une meilleure organisation et une exécution fluide des différentes étapes de l’analyse et de la gestion des fichiers volumineux.

L’implémentation de l’interface graphique avec PyQt5 m’a permis de comprendre comment rendre un outil interactif et ergonomique, en facilitant la sélection du dossier à analyser et l’affichage des résultats sous forme de camembert. J’ai également découvert les défis liés à la gestion des onglets et la pagination des légendes, ce qui m’a sensibilisé aux problématiques de lisibilité et d’optimisation de l’affichage.

Enfin, j’ai compris l’intérêt du format JSON pour stocker et exploiter efficacement les données, ainsi que les bonnes pratiques à adopter pour gérer les chemins de fichiers de manière multiplateforme (Windows, MacOS, Linux). Ce projet m’a permis de renforcer mes compétences en programmation et d’améliorer ma capacité à résoudre des problèmes techniques de manière méthodique et structurée.