Herramientas de cruce de directorios en Python

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í:

python-directory-and-files

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *