os.walk()
El método del módulo del sistema operativo se puede utilizar para enumerar todos los directorios. Básicamente, este método genera los nombres de los archivos en el árbol de directorios, ya sea de arriba hacia abajo o de abajo hacia arriba. Para cada directorio en el árbol enraizado en la parte superior del directorio (incluida la parte superior misma), produce una tupla de 3 (ruta de directorio, nombres de directorio, nombres de archivo).
- dirpath: Una string que es la ruta al directorio
- dirnames: Todos los subdirectorios desde la raíz.
- nombres de archivo: Todos los archivos de raíz y directorios.
Sintaxis: os.walk(top, topdown=True, onerror=Ninguno, followlinks=False)
Parámetros:
top: directorio de inicio para os.walk().
arriba hacia abajo: si este argumento opcional es verdadero, los directorios se escanean de arriba hacia abajo, de lo contrario, de abajo hacia arriba. Esto es Verdadero por defecto.
onerror: Es una función que maneja los errores que pueden ocurrir.
followlinks: Esto visita los directorios a los que apuntan los enlaces simbólicos, si se establece en True.Tipo de valor devuelto: para cada directorio en el árbol arraigado en la parte superior del directorio (incluida la parte superior), produce una tupla de 3 (ruta de directorio, nombres de directorio, nombres de archivo).
Ejemplo: Supongamos que el directorio se ve así:
Queremos enumerar todos los subdirectorios y archivos dentro del árbol de directorios. A continuación se muestra la implementación.
# Python program to list out # all the sub-directories and files import os # List to store all # directories L = [] # Traversing through Test for root, dirs, files in os.walk('Test'): # Adding the empty directory to # list L.append((root, dirs, files)) print("List of all sub-directories and files:") for i in L: print(i)
Producción:
List of all sub-directories and files: ('Test', ['B', 'C', 'D', 'A'], []) ('Test/B', [], []) ('Test/C', [], ['test2.txt']) ('Test/D', ['E'], []) ('Test/D/E', [], []) ('Test/A', ['A2', 'A1'], []) ('Test/A/A2', [], []) ('Test/A/A1', [], ['test1.txt'])
El código anterior se puede acortar utilizando List Comprehension, que es una forma más pythonica. A continuación se muestra la implementación.
# Python program to list out # all the sub-directories and files import os # List comprehension to enter # all directories to list L = [(root, dirs, files) for root, dirs, files, in os.walk('Test')] print("List of all sub-directories and files:") for i in L: print(i)
Producción:
List of all sub-directories and files: ('Test', ['B', 'C', 'D', 'A'], []) ('Test/B', [], []) ('Test/C', [], ['test2.txt']) ('Test/D', ['E'], []) ('Test/D/E', [], []) ('Test/A', ['A2', 'A1'], []) ('Test/A/A2', [], []) ('Test/A/A1', [], ['test1.txt'])
Publicación traducida automáticamente
Artículo escrito por TanmayChakraborty y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA