Recorrer un árbol de directorios
os.walk(top, topdown=True, onerror=None, followlinks=False)
es una función del módulo os
en Python que genera los nombres de archivo en un árbol de directorios al recorrer el árbol de forma ascendente o descendente. Por defecto, os.walk()
genera los nombres de archivo en un árbol de directorios de forma descendente. Para cada directorio en el árbol con raíz en el directorio top
(incluyendo top
mismo), produce una tupla de tres elementos (dirpath, dirnames, filenames).
A continuación, se muestra un ejemplo de cómo se puede usar os.walk()
para imprimir todos los archivos en un directorio y sus subdirectorios:
import os
## Imprime todos los archivos en un directorio y sus subdirectorios
for root, dirs, files in os.walk('.'):
for file in files:
print(os.path.join(root, file))
Este código comenzará en el directorio actual (indicado por '.') y recorrerá recursivamente todos los subdirectorios, imprimiendo la ruta completa de cada archivo que encuentre.
A continuación, se muestra otro ejemplo donde se puede usar os.walk()
para buscar un archivo específico con una extensión específica en un directorio:
import os
def search_file(directory, file_extension):
for root, dirs, files in os.walk(directory):
for file in files:
if file.endswith(file_extension):
print(os.path.join(root, file))
search_file('.','.txt')
Esto buscará todos los archivos con la extensión '.txt' e imprimirá la ruta completa del archivo.
os.walk()
es una función poderosa que se puede usar para muchas tareas, como buscar archivos, analizar estructuras de directorios y más.
Es importante destacar que os.walk
es un generador, lo que significa que genera los valores sobre la marcha, en lugar de mantenerlos todos en memoria. Esto lo hace eficiente para manejar árboles de directorios grandes.