Maison > développement back-end > Tutoriel Python > 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
Libérer: 2024-11-07 21:47:02
original
553 Les gens l'ont consulté

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("")
Copier après la connexion

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)
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal