logo

os.walk() en Python

¿Cómo recorrer el sistema de archivos en Python? Supongamos que hemos proporcionado la siguiente estructura de archivos en nuestro sistema y queremos recorrer todas sus ramas completamente de arriba a abajo. Sistema de archivos de ejemplo

¿Cómo funciona os.walk() en Python?

OS.walk() genera los nombres de los archivos en un árbol de directorios recorriendo el árbol de arriba hacia abajo o de abajo hacia arriba. Para cada directorio en el árbol con raíz en la parte superior del directorio (incluida la parte superior), produce una tupla de 3 (dirpath, dirnames, filenames).



  • raíz : Imprime directorios solo a partir de lo que especificó.
  • decir: Imprime subdirectorios desde la raíz.
  • archivos: Imprime todos los archivos desde la raíz y los directorios.
Python3
# Driver function import os if __name__ == "__main__": for (root,dirs,files) in os.walk('.', topdown=True): print (root) print (dirs) print (files) print ('--------------------------------')>

Producción:

['gfg-article-deep-crawl-master (1)', '.ipynb_checkpoints'] ['t.pdf', 'Untitled.ipynb'] -------------------------------- ./gfg-article-deep-crawl-master (1) ['gfg-article-deep-crawl-master'] [] -------------------------------- ./gfg-article-deep-crawl-master (1)/gfg-article-deep-crawl-master ['check_rank'] ['rank_scraper.py', 'search-page (copy).html', '.gitignore', 'search-page.html', 'globals.py', 'requirements.txt', 'sel_scraper.py', 'README.md'] -------------------------------- ./gfg-article-deep-crawl-master (1)/gfg-article-deep-crawl-master/check_rank [] ['selenium.py', 'tools.py', '__init__.py', 'run_check.py'] -------------------------------- ./.ipynb_checkpoints [] ['Untitled-checkpoint.ipynb'] -------------------------------->

Comprensión de listas anidadas con Os.Walk

Programa para encontrar los archivos de Python en el árbol de directorios, lo que significa que necesitamos encontrar los archivos que terminan con la extensión .py.

Pitón
# code import os if __name__ == '__main__': pythonFiles = [file for dirs in os.walk('.', topdown=True) for file in dirs[2] if file.endswith('.py')] print('python files in the directory tree are ') for r in pythonFiles: print(r)>

Producción
python files in the directory tree are Solution.py>