En este articulo mostraré como listar un directorio en python con walk. En este link podrás ver también, como acceder a directorios con scandir
El método walk() pertenece al módulo os , y recibe como parámetro la ruta del contenido que recorreremos.
Como lo que hace el método es crear un iterador, que en cada iteración, devuelve tres valores: el nombre de la ruta completa del directorio, la lista de directorios que lo componen y la lista de ficheros de ese directorio.
El recorrido que hace el metodo por defecto es descendente, por lo que primero listará el contenido del directorio actual, y luego ira descendiendo por nivel listando los directorios correspondientes.
Cuando no se especifica la ruta, walk() toma como referencia el directorio actual.
import os
dir = "/Users/blackmaster/Downloads/"
for nombre_directorio,carpetas,archivos in os.walk(dir):
print('\n A')
print(nombre_directorio)
print('\n B')
print(carpetas)
print('\n C')
print(archivos)
El resultado del script anterior irá devolviendo recursivamente, o sea por niveles los componentes de una ruta en este caso, separados por un salto de línea con los subtitulos A, B y C.
Te invito a que lo pruebes, para que lo comprendas mejor.
Si al método walk() le pasamos el argumento topdown=False:
, mostrará primero el contenido de los directorios más profundos.
Como por defecto, walk()
no sigue los enlaces simbólicos que encuentra en un directorio, hay que pasar el argumento followlinks=True
, para que lo haga.
import os
dir = "/Users/blackmaster/Downloads/"
for nombre_directorio,carpetas,archivos in os.walk(dir, topdown=False,followlinks=True):
print('\n A')
print(nombre_directorio)
print('\n B')
print(carpetas)
print('\n C')
print(archivos)
Y hasta aquí.
Espero modestamente, que este post ayude a alguien.
La clave para todo es la determinación
D.