← Volver
La función estándar
Este código genera un árbol a partir del directorio de instalación de Python (para indicar el directorio actual, utilícese
Los primeros resultados en pantalla son más o menos los siguientes.
Como puede observarse, la primera ruta en analizarse es siempre el argumento indicado (
La función es especialmente útil para buscar archivos y/o carpetas en el sistema o en alguna ruta en particular. Por ejemplo, el siguiente código imprime la dirección de todos los archivos que contienen la palabra "python" dentro de
Cómo recorrer un árbol de archivos y carpetas
os.walk() genera un árbol de archivos y carpetas a partir de una ruta inicial para ser recorrido como un objeto iterable. De este modo, os.walk("C:/"), por ejemplo, en Windows, permite recorrer todos los archivos y carpetas del sistema (considerando que C: es la única unidad).import os
for dirpath, dirnames, filenames in os.walk("C:/Python35"):
print("Ruta actual:", dirpath)
print("Carpetas:", ", ".join(dirnames))
print("Archivos:", ", ".join(filenames))
Este código genera un árbol a partir del directorio de instalación de Python (para indicar el directorio actual, utilícese
os.walk(".")). El valor retornado es un objeto iterable cuyos elementos son tuplas, y éstas, a su vez, contienen otros tres elementos: la ruta del directorio actual que se está recorriendo (dirpath), una lista con los nombres de las carpetas (dirnames) y otra con los nombres de los archivos (filenames).Los primeros resultados en pantalla son más o menos los siguientes.
Ruta actual: C:/Python35
Carpetas: DLLs, Doc, gevent, include, Lib, libs, Release, Scripts, share, tcl, Tools
Archivos: LICENSE.txt, NEWS.txt, python.exe, python3.dll, python35.dll, pythonw.exe, pywin32-wininst.log, README.txt, vcruntime140.dll
Ruta actual: C:/Python35\DLLs
Carpetas:
Archivos: py.ico, pyc.ico, pyexpat.pyd, select.pyd, sqlite3.dll, tcl86t.dll, tk86t.dll, unicodedata.pyd, winsound.pyd, _bz2.pyd, _ctypes.pyd, _ctypes_test.pyd, _decimal.pyd, _elementtree.pyd, _hashlib.pyd, _lzma.pyd, _msi.pyd, _multiprocessing.pyd, _overlapped.pyd, _socket.pyd, _sqlite3.pyd, _ssl.pyd, _testbuffer.pyd, _testcapi.pyd, _testimportmultiple.pyd, _testmultiphase.pyd, _tkinter.pyd
Ruta actual: C:/Python35\Doc
Carpetas:
Archivos: python351.chm
[...]
Como puede observarse, la primera ruta en analizarse es siempre el argumento indicado (
C:/Python35/ en nuestro caso), pues es el punto de partida. Luego, se prosigue con la primera carpeta encontrada dentro de ésta, a saber, DLLs. Como dentro de ella no hay más directorios, entonces se prosigue con la segunda de la ruta anterior, Doc. Este proceso se repite hasta que se haya generado todos los elementos.La función es especialmente útil para buscar archivos y/o carpetas en el sistema o en alguna ruta en particular. Por ejemplo, el siguiente código imprime la dirección de todos los archivos que contienen la palabra "python" dentro de
C:/Python35/ (y todas sus subcarpetas).import os
import os.path
for dirpath, dirnames, filenames in os.walk("C:/Python35/"):
for filename in filenames:
if "python" in filename.lower():
print(os.path.join(dirpath, filename))
🐍 También te puede interesar:
💬 ¿Alguna duda sobre este código? ¡Preguntanos en el foro!
❤️ ¿Te gusta nuestro contenido? ¡Ayudanos a seguir creciendo con una donación!