Parcours d'un arbre de répertoires
os.walk(top, topdown=True, onerror=None, followlinks=False) est une fonction du module os en Python qui génère les noms de fichiers dans un arbre de répertoires en parcourant l'arbre soit de haut en bas soit de bas en haut. Par défaut, os.walk() génère les noms de fichiers dans un arbre de répertoires de haut en bas. Pour chaque répertoire dans l'arbre enraciné dans le répertoire top (y compris top lui-même), elle renvoie un tuple de 3 éléments (dirpath, dirnames, filenames).
Voici un exemple de manière dont vous pouvez utiliser os.walk() pour afficher tous les fichiers dans un répertoire et ses sous-répertoires :
import os
## Affiche tous les fichiers dans un répertoire et ses sous-répertoires
for root, dirs, files in os.walk('.'):
for file in files:
print(os.path.join(root, file))
Ce code commencera au répertoire courant (indiqué par '.') et parcourra récursivement tous les sous-répertoires, affichant le chemin complet de chaque fichier qu'il rencontre.
Voici un autre exemple où vous pouvez utiliser os.walk() pour rechercher un fichier spécifique avec une extension spécifique dans un répertoire :
import os
def search_file(directory, file_extension):
for root, dirs, files in os.walk(directory):
for file in files:
if file.endswith(file_extension):
print(os.path.join(root, file))
search_file('.','.txt')
Cela cherchera tous les fichiers avec l'extension '.txt' et affichera le chemin complet du fichier.
os.walk() est une fonction puissante qui peut être utilisée pour de nombreuses tâches telles que la recherche de fichiers, l'analyse des structures de répertoires, etc.
Il est important de noter que os.walk est un générateur, ce qui signifie qu'il génère les valeurs au fur et à mesure, plutôt que de les conserver toutes en mémoire. Cela le rend efficace pour gérer de grands arbres de répertoires.