Exploiter os.walk() de Python pour l'exploration récursive de répertoires
En Python, parcourir des répertoires de manière récursive est une tâche cruciale pour des tâches telles que la gestion de fichiers et manipulation de répertoires. La fonction polyvalente os.walk() fournit une solution robuste à cet effet.
Lors de la navigation dans les répertoires, il est souvent essentiel de faire la distinction entre les fichiers et les répertoires. Cependant, la fonction os.walk() présente les données différemment. Pour résoudre ce problème, il devient nécessaire d'exploiter des outils supplémentaires.
Pour illustrer cela, considérons l'extrait de code suivant :
import os import fnmatch for root, dir, files in os.walk("."): print(root) print("") for items in fnmatch.filter(files, "*"): print("..." + items) print("")
Une fois exécuté, ce code imprime la structure du répertoire actuel, suivi de fichiers dans chaque répertoire. Cependant, cette structure ne correspond pas au format souhaité, où les fichiers et les répertoires sont clairement distingués.
Pour obtenir le résultat souhaité, une approche alternative utilisant une implémentation os.walk() légèrement modifiée est nécessaire :
import os for root, dirs, files in os.walk("."): path = root.split(os.sep) print((len(path) - 1) * '---', os.path.basename(root)) for file in files: print(len(path) * '---', file)
Ce code révisé divise le chemin du répertoire racine en composants individuels (chemin) et compte le nombre de composants pour déterminer la profondeur du répertoire actuel. Cette profondeur est ensuite utilisée pour mettre en retrait le nom du répertoire et les fichiers qu'il contient pour une visualisation correcte. Le résultat final reflète donc une représentation hiérarchique avec des répertoires et des fichiers clairement séparés.
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!