Python 3 - Método os.walk ()

Descrição

O método walk() gera os nomes dos arquivos em uma árvore de diretório percorrendo a árvore de cima para baixo ou de baixo para cima.

Sintaxe

A seguir está a sintaxe para walk() método -

os.walk(top[, topdown = True[, onerror = None[, followlinks = False]]])

Parâmetros

  • top - Cada diretório com raiz no diretório produz 3-tuplas, ou seja, (caminho de diretório, nomes de diretório, nomes de arquivo)

  • topdown- Se o argumento opcional topdown for True ou não especificado, os diretórios serão verificados de cima para baixo. Se topdown for definido como False, os diretórios serão verificados de baixo para cima.

  • onerror - Isso pode mostrar um erro ao continuar a caminhada ou gerar a exceção para abortar a caminhada.

  • followlinks - Isso visita diretórios apontados por links simbólicos, se definido como verdadeiro.

Valor de retorno

Este método não retorna nenhum valor.

Exemplo

O exemplo a seguir mostra o uso do método walk ().

# !/usr/bin/python3
import os

os.chdir("d:\\tmp")
for root, dirs, files in os.walk(".", topdown = False):
   for name in files:
      print(os.path.join(root, name))
   for name in dirs:
      print(os.path.join(root, name))

Resultado

Deixe-nos compilar e executar o programa acima, ele irá verificar todos os diretórios e subdiretórios de baixo para cima

.\python2\testdir\Readme_files\Lpt_Port_Config.gif
.\python2\testdir\Readme_files\ParallelPortViever.gif
.\python2\testdir\Readme_files\softcollection.css
.\python2\testdir\Readme_files\Thumbs.db
.\python2\testdir\Readme_files\Yellov_Ball.gif
.\python2\testdir\Readme.htm
.\python2\testdir\Readme_files
.\python2\testdir
.\Applicationdocs.docx
.\book.zip
.\foo.txt
.\java.ppt
.\python2

Se você alterar o valor de topdown como True, então você terá o seguinte resultado -

.\Applicationdocs.docx
.\book.zip
.\foo.txt
.\java.ppt
.\python2
.\python2\testdir
.\python2\testdir\Readme.htm
.\python2\testdir\Readme_files
.\python2\testdir\Readme_files\Lpt_Port_Config.gif
.\python2\testdir\Readme_files\ParallelPortViever.gif
.\python2\testdir\Readme_files\softcollection.css
.\python2\testdir\Readme_files\Thumbs.db
.\python2\testdir\Readme_files\Yellov_Ball.gif