"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 ler recursivamente o conteúdo da pasta em Python usando a função os.walk()?

Como ler recursivamente o conteúdo da pasta em Python usando a função os.walk()?

Publicado em 2024-11-08
Navegar:589

How to Recursively Read Folder Contents in Python Using the os.walk() Function?

Lendo recursivamente o conteúdo da pasta em Python

Em Python, você pode encontrar problemas ao tentar percorrer diretórios recursivamente para ler arquivos de texto. Um problema comum é o código que funciona apenas para um único nível de diretório.

Compreendendo a função os.walk

O núcleo da travessia recursiva de pastas em Python está no sistema operacional Função .walk(). Ele itera sobre um diretório especificado e seus subdiretórios, retornando três valores: root, subdiretórios e arquivos.

  • root : o diretório atual que está sendo processado.
  • subdirs : diretórios dentro do atual diretório.
  • arquivos: arquivos (não diretórios) no diretório atual.

Otimizando a passagem de pasta

Para percorrer diretórios recursivamente, você deve percorrer a lista de subdiretórios retornados por os.walk(). Para cada subdiretório, você pode chamar os.walk() recursivamente para processar seu conteúdo.

Código Python aprimorado

O código de exemplo pode ser modificado para lidar com vários diretórios níveis:

import os
import sys

walk_dir = sys.argv[1]

for root, subdirs, files in os.walk(walk_dir):
    for subdir in subdirs:
        # Process subdirectory: call os.walk() recursively for subdir
        for sub_subdir, sub_subfiles, _ in os.walk(os.path.join(root, subdir)):
            # Process subdirectories and files in subdirectory

Práticas recomendadas adicionais

  • Use os.path.join() para concatenação de caminho em vez de manipulação manual de strings.
  • Considere converter argumentos de script em caminhos absolutos usando os.path.abspath() para estabilidade.
  • Utilize a instrução with para simplificar o manuseio de arquivos e garantir a limpeza automática.
Declaração de lançamento Este artigo foi reimpresso em: 1729233616 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
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