Maison >développement back-end >Tutoriel Python >Comment lister les structures de répertoires en Python ?

Comment lister les structures de répertoires en Python ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-04 02:00:02999parcourir

How to List Directory Structures in Python?

Liste des structures de répertoires en Python

Obtenir une liste complète de fichiers et de répertoires dans un répertoire spécifié est une exigence courante dans la programmation Python. Voici comment y parvenir efficacement :

Obtention d'une liste hiérarchique de fichiers et de répertoires

La fonction os.walk() fournit une méthode puissante pour parcourir une arborescence de répertoires et générer une liste hiérarchique de son contenu. Il prend un répertoire de départ en entrée et génère trois tuples pour chaque niveau dans la structure de répertoires :

  • dirname : le chemin absolu vers le répertoire actuel en cours de traitement.
  • dirnames : une liste de sous-répertoires dans le répertoire actuel.
  • noms de fichiers : une liste de noms de fichiers dans le répertoire actuel.

Exemple d'implémentation

<code class="python">import os

for dirname, dirnames, filenames in os.walk('.'):
    # Print path to subdirectories first.
    for subdirname in dirnames:
        print(os.path.join(dirname, subdirname))

    # Print path to filenames.
    for filename in filenames:
        print(os.path.join(dirname, filename))

    # Optional: Modify 'dirnames' to skip subdirectories.
    if '.git' in dirnames:
        dirnames.remove('.git')</code>

Ce code parcourt le répertoire de travail actuel (représenté par ".") et imprime le chemin complet de tous les sous-répertoires et noms de fichiers dans l'arborescence des répertoires. Par défaut, il revient dans tous les sous-répertoires. Cependant, vous pouvez modifier la liste des noms de répertoires dans la boucle pour contrôler quels sous-répertoires sont explorés.

Utilisation avancée

  • Exclusion des répertoires : la liste des noms de répertoires peut être modifiée pour supprimer des répertoires du chemin de traversée. Par exemple, pour exclure les répertoires .git, vous pouvez les supprimer des noms de répertoire comme indiqué dans l'exemple ci-dessus.
  • Traverser les liens symboliques : par défaut, os.walk() suit les liens symboliques. Pour éviter cela, définissez le paramètre followlinks sur False.
  • Stockage des informations sur les fichiers : les tuples de noms de fichiers et de noms de répertoire peuvent être utilisés pour extraire des informations supplémentaires sur les fichiers, telles que la taille du fichier et l'heure de modification.

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