Python 3 - método os.walk ()

Descripción

El método walk() genera los nombres de archivo en un árbol de directorios recorriendo el árbol de arriba hacia abajo o de abajo hacia arriba.

Sintaxis

A continuación se muestra la sintaxis de walk() método -

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

Parámetros

  • top - Cada directorio enraizado en el directorio, produce 3 tuplas, es decir, (ruta de directorio, nombres de directorio, nombres de archivo)

  • topdown- Si el argumento de arriba hacia abajo opcional es Verdadero o no se especifica, los directorios se escanean de arriba hacia abajo. Si topdown se establece en False, los directorios se escanean de abajo hacia arriba.

  • onerror - Esto puede mostrar un error para continuar con la caminata o generar la excepción para abortar la caminata.

  • followlinks - Esto visita directorios apuntados por enlaces simbólicos, si se establece en verdadero.

Valor devuelto

Este método no devuelve ningún valor.

Ejemplo

El siguiente ejemplo muestra el uso del 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

Compilemos y ejecutemos el programa anterior, esto escaneará todos los directorios y subdirectorios de abajo hacia arriba

.\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

Si cambia el valor de topdown a True, entonces le dará el siguiente 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