"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como posso usar `os.walk()` para criar uma listagem estruturada de diretórios com indicadores de profundidade em Python?

Como posso usar `os.walk()` para criar uma listagem estruturada de diretórios com indicadores de profundidade em Python?

Publicado em 2024-11-09
Navegar:779

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

Navegando em diretórios recursivamente com os.walk() em Python

Buscando criar listagens de diretórios mais estruturadas, um desenvolvedor tentou modificar seu código para exibir diretórios como títulos em maiúsculas com linhas tracejadas indicando profundidade e arquivos abaixo deles. No entanto, sua abordagem inicial produziu resultados incompletos.

Para enfrentar esse desafio, podemos utilizar o atributo os.sep do Python para delinear os componentes do caminho corretamente. Aqui está uma solução aprimorada:

#!/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)

Neste código revisado, dividimos o caminho usando os.sep como delimitador, que acomoda sistemas de arquivos Windows e Unix. Ao subtrair 1 do comprimento do caminho, podemos obter a profundidade do nível atual e exibir o número apropriado de linhas tracejadas.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3