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