Maison  >  Article  >  développement back-end  >  Comment puis-je utiliser « os.walk() » pour créer une liste de répertoires structurée avec des indicateurs de profondeur en Python ?

Comment puis-je utiliser « os.walk() » pour créer une liste de répertoires structurée avec des indicateurs de profondeur en Python ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-07 04:31:02894parcourir

How can I use `os.walk()` to create a structured directory listing with depth indicators in Python?

Navigation récursive dans les répertoires avec os.walk() en Python

Cherchant à créer des listes de répertoires plus structurées, un développeur a tenté de modifier son code pour afficher les répertoires sous forme de titres en majuscules avec des lignes pointillées indiquant la profondeur et les fichiers en dessous. Cependant, leur approche initiale a donné des résultats incomplets.

Pour relever ce défi, nous pouvons utiliser l'attribut os.sep de Python pour délimiter correctement les composants du chemin. Voici une solution améliorée :

#!/usr/bin/python
import os

# traverse root directory, and list directories as dirs and files as files
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)

Dans ce code révisé, nous divisons le chemin en utilisant os.sep comme délimiteur, qui s'adapte aux systèmes de fichiers Windows et Unix. En soustrayant 1 à la longueur du chemin, nous pouvons obtenir la profondeur du niveau actuel et afficher le nombre approprié de lignes pointillées.

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