Connaître l'espace disque disponible avec shutil.disk_usage() en Python

Le module shutil fournit la fonction shutil.disk_usage() permettant de connaître facilement l'espace disque total, l'espace utilisé et l'espace disponible d'un disque ou du système de fichiers contenant un chemin donné. Cette fonction est particulièrement utile pour surveiller l'espace de stockage avant une sauvegarde, un téléchargement ou la création de fichiers volumineux.

1. À propos de shutil.disk_usage()

La fonction shutil.disk_usage() appartient au module shutil de la bibliothèque standard de Python. Il n'est donc pas nécessaire d'installer un package supplémentaire avec pip.

Cette fonction permet d'obtenir des informations sur l'utilisation de l'espace disque associé à un chemin donné. Pour commencer, nous devons simplement importer le module shutil.

Sortie :

Syntaxe de disk_usage()

La fonction disk_usage() reçoit le chemin d'un fichier ou d'un dossier situé sur le système de fichiers que nous souhaitons analyser.

Sortie possible :

Les valeurs affichées dépendent naturellement de l'ordinateur utilisé. Elles sont exprimées en octets.

Les trois informations retournées

shutil.disk_usage() retourne trois valeurs importantes : total correspond à la capacité totale, used à l'espace utilisé et free à l'espace encore disponible.

2. Obtenir l'espace disque total, utilisé et disponible

Les informations retournées par disk_usage() peuvent être récupérées directement dans trois variables grâce à l'affectation multiple de Python.

L'exemple suivant analyse le disque C: sous Windows et récupère séparément sa capacité totale, son espace utilisé et son espace libre.

Sortie possible :

Les valeurs obtenues sont exprimées en octets. Elles peuvent donc être très grandes et difficiles à lire directement.

Utiliser les attributs total, used et free

Nous pouvons également conserver le résultat de disk_usage() dans une variable puis accéder aux propriétés total, used et free.

Sortie possible :

Cette écriture peut rendre le programme plus lisible lorsque les différentes informations sont utilisées à plusieurs endroits.

3. Convertir les octets en Mo et en Go

Comme disk_usage() retourne les valeurs en octets, il est souvent préférable de les convertir en mégaoctets ou en gigaoctets pour faciliter leur lecture.

Convertir les octets en mégaoctets

Pour obtenir une valeur en Mo selon une conversion binaire courante, nous pouvons diviser le nombre d'octets par 1024².

Sortie possible :

La fonction round() permet ici de limiter l'affichage à deux chiffres après la virgule.

Convertir les octets en gigaoctets

Pour obtenir des valeurs plus faciles à lire sur les disques modernes, nous pouvons effectuer une conversion en Go en divisant le nombre d'octets par 1024³.

Sortie possible :

Cette présentation est généralement beaucoup plus compréhensible que l'affichage direct du nombre d'octets.

Créer une fonction de conversion

Lorsque plusieurs valeurs doivent être converties, nous pouvons créer une fonction octets_vers_go() afin d'éviter de répéter le même calcul.

Sortie possible :

Cette fonction peut ensuite être réutilisée chaque fois que nous devons convertir une taille exprimée en octets.

4. Calculer le pourcentage d'espace disque utilisé

Les valeurs fournies par shutil.disk_usage() permettent également de calculer le pourcentage d'espace utilisé. Il suffit de diviser l'espace utilisé par la capacité totale puis de multiplier le résultat par 100.

Sortie possible :

Ce pourcentage permet de connaître rapidement le niveau d'occupation du disque.

Calculer le pourcentage d'espace libre

De la même manière, nous pouvons calculer le pourcentage d'espace disponible en divisant la valeur free par la capacité totale.

Sortie possible :

Cette information peut servir à déclencher une alerte lorsque l'espace disponible devient trop faible.

Afficher un petit rapport sur le disque

Nous pouvons combiner les différentes informations afin de produire un rapport simple sur l'état du disque.

Sortie possible :

Quelques lignes de Python suffisent ainsi pour obtenir un résumé facilement lisible de l'utilisation du disque.

5. Analyser un disque ou un chemin particulier

shutil.disk_usage() ne nécessite pas forcément d'indiquer directement la racine d'un disque. Nous pouvons fournir le chemin d'un dossier existant situé sur le système de fichiers que nous souhaitons analyser.

Analyser le disque contenant le dossier courant

Le chemin "." représente le dossier courant. Il permet donc d'obtenir les informations du système de fichiers sur lequel le programme est exécuté.

Sortie possible :

Cette méthode est pratique lorsque nous voulons connaître l'espace disponible sans connaître à l'avance la lettre du disque utilisé.

Analyser un dossier particulier

Nous pouvons également fournir le chemin d'un dossier particulier. disk_usage() retourne alors les informations du système de fichiers contenant ce dossier, et non la taille du dossier lui-même.

Sortie possible :

Il est important de comprendre que disk_usage() ne calcule pas l'espace occupé par C:/Users. Elle fournit les informations du disque ou de la partition sur laquelle ce dossier se trouve.

Analyser un autre disque sous Windows

Si l'ordinateur possède plusieurs disques ou partitions, nous pouvons préciser directement la lettre du disque que nous souhaitons analyser.

Sortie possible :

La même technique peut être utilisée avec d'autres volumes accessibles au système.

6. Vérifier si l'espace disponible est suffisant

L'une des utilisations les plus intéressantes de shutil.disk_usage() consiste à vérifier automatiquement si l'espace disponible est suffisant avant une copie, une sauvegarde, une installation ou la création d'un fichier volumineux.

Vérifier qu'il reste au moins 10 Go

Dans l'exemple suivant, le programme vérifie si le disque possède au moins 10 Go disponibles.

Sortie possible :

Cette vérification peut être effectuée avant de commencer une opération nécessitant beaucoup d'espace.

Afficher une alerte lorsque le disque est presque plein

Nous pouvons également surveiller le pourcentage d'occupation et afficher une alerte lorsque celui-ci dépasse une valeur déterminée, par exemple 90 %.

Sortie possible :

Ce principe peut être intégré dans un outil de surveillance ou un script d'administration.

Vérifier l'espace avant une sauvegarde

Avant de créer une sauvegarde importante, nous pouvons comparer l'espace nécessaire à l'espace actuellement disponible sur le disque.

Sortie possible :

Ici, le programme vérifie qu'au moins 5 Go sont disponibles avant d'autoriser la sauvegarde.

7. Exemple pratique et gestion des erreurs

Dans une application réelle, il est préférable de prévoir une gestion des erreurs, notamment lorsque le chemin fourni à disk_usage() n'existe pas ou n'est pas accessible.

Gérer un chemin inexistant

Nous pouvons utiliser un bloc try...except afin d'intercepter l'exception FileNotFoundError lorsqu'un chemin est introuvable.

Sortie possible :

Cette gestion évite que le programme s'arrête brutalement lorsqu'un disque ou un dossier demandé est absent.

Créer une fonction d'analyse du disque

Pour rendre notre programme réutilisable, nous pouvons créer une fonction espace_disque() qui reçoit un chemin et affiche automatiquement les principales informations sur son espace disque.

Sortie possible :

Cette fonction peut être appelée pour différents disques ou chemins afin d'obtenir rapidement un rapport sur l'espace disponible.

Points importants à retenir

shutil.disk_usage() retourne trois informations : total, used et free.

Les valeurs retournées sont exprimées en octets. Elles peuvent être converties en unités plus lisibles en divisant par 1024² ou 1024³ pour obtenir respectivement des valeurs binaires couramment affichées comme Mo et Go.

disk_usage() fournit les informations du système de fichiers contenant le chemin indiqué. Elle ne calcule pas la taille occupée par un dossier particulier.

La fonction est particulièrement utile pour vérifier l'espace disponible avant une sauvegarde, une copie de fichiers, un téléchargement ou toute opération nécessitant beaucoup de stockage.

Conclusion

La fonction shutil.disk_usage() constitue une solution simple pour connaître l'espace disque disponible en Python. En une seule instruction, elle permet d'obtenir la capacité totale du disque, l'espace utilisé et l'espace encore disponible.

Associée à quelques calculs simples, elle permet également d'afficher les valeurs en Go, de calculer le pourcentage d'occupation et de créer des scripts capables de détecter automatiquement un manque d'espace disque.

 


 


Auteur : Younes Derfoufi
Lieu de travail : CRMEF OUJDA
Site Web : www.tresfacile.net
Chaine YouTube : https://www.youtube.com/user/InformatiquesFacile
Me contacter : https://www.tresfacile.net/me-contacter/


Leave a Reply

Your email address will not be published. Required fields are marked *