Maison  >  Article  >  développement back-end  >  Comment répertorier une arborescence de répertoires en Python à l'aide de os.walk ?

Comment répertorier une arborescence de répertoires en Python à l'aide de os.walk ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-30 22:23:02652parcourir

How to List a Directory Tree in Python using os.walk?

Liste d'une arborescence de répertoires en Python

La manipulation de fichiers et de répertoires est une tâche courante en programmation. En Python, il est facile d'obtenir une liste de tous les fichiers et répertoires d'un répertoire donné à l'aide de la fonction os.walk.

Obtenir des fichiers et des répertoires avec os.walk

La fonction os.walk prend un chemin de répertoire en entrée et renvoie un objet générateur qui génère un tuple pour chaque répertoire qu'elle rencontre. Le tuple contient trois éléments :

  • dirname : le chemin du répertoire actuel.
  • dirnames : une liste de sous-répertoires dans le répertoire actuel.
  • filenames : A liste des fichiers dans le répertoire actuel.

Voici un exemple d'utilisation de os.walk pour lister une arborescence de répertoires :

<code class="python">import os

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

    # Print path to all filenames.
    for filename in filenames:
        print(os.path.join(dirname, filename))</code>

Ce code parcourra l'arborescence de répertoires en commençant à partir du répertoire courant (représenté par '.') et imprimez le chemin d'accès à chaque sous-répertoire et fichier qu'il rencontre.

Utilisation avancée

La fonction os.walk permet également vous de contrôler la façon dont il traverse l’arborescence des répertoires. Par exemple, vous pouvez modifier la liste des noms de répertoires pendant l'itération pour empêcher os.walk de réapparaître dans certains répertoires.

Dans l'exemple ci-dessous, le code évite de réapparaître dans les répertoires nommés .git :

<code class="python">if '.git' in dirnames:
    # Don't go into any .git directories.
    dirnames.remove('.git')</code>

Cette polyvalence fait de os.walk un outil puissant pour travailler avec des arborescences de répertoires en Python.

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