Maison  >  Article  >  développement back-end  >  Comment puis-je distinguer efficacement les fichiers et les répertoires lors de l'utilisation de la fonction os.walk() de Python ?

Comment puis-je distinguer efficacement les fichiers et les répertoires lors de l'utilisation de la fonction os.walk() de Python ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-07 21:47:02535parcourir

How can I effectively distinguish between files and directories when using Python's os.walk() function?

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!

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
Article précédent:Envoi automatisé d'e-mailsArticle suivant:Envoi automatisé d'e-mails