Maison  >  Article  >  développement back-end  >  Comment calculer la taille des répertoires en Python : une comparaison des méthodes

Comment calculer la taille des répertoires en Python : une comparaison des méthodes

Susan Sarandon
Susan Sarandonoriginal
2024-11-01 14:03:02955parcourir

How to Calculate Directory Sizes in Python: A Comparison of Methods

Calcul de la taille d'un répertoire avec Python

Avant de se lancer dans une implémentation personnalisée, il vaut la peine d'explorer si les solutions existantes peuvent rationaliser la tâche de déterminer la taille d'un répertoire.

Solution proposée à l'aide d'os.walk

La routine Python suivante parcourt habilement les sous-répertoires et accumule les tailles de chaque fichier :

<code class="python">import os

def get_size(start_path='.'):
    total_size = 0
    for dirpath, dirnames, filenames in os.walk(start_path):
        for f in filenames:
            fp = os.path.join(dirpath, f)
            # Skip symbolic links
            if not os.path.islink(fp):
                total_size += os.path.getsize(fp)
    return total_size

print(get_size(), 'bytes')</code>

One-Liner alternative utilisant os.listdir

Pour une approche plus rapide et plus simple qui exclut les sous-répertoires, envisagez la one-liner suivante :

<code class="python">import os
sum(os.path.getsize(f) for f in os.listdir('.') if os.path.isfile(f))</code>

Références et optimisations supplémentaires

Pour plus d'informations, reportez-vous aux ressources suivantes :

  • os.path.getsize : acquiert la taille des fichiers en octets
  • os.path.islink : Détecte les liens symboliques
  • os.path.stat().st_size : Une méthode alternative de récupération de taille de fichier
  • Le package scandir : Offre une méthode efficace méthode walk
  • Le module pathlib : Pour une solution plus concise et polyvalente

En optant pour du code préexistant, vous pouvez accélérer votre processus de développement tout en garantissant l'exactitude du calcul de la taille des répertoires.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn