Python: Obtenga la lista de todos los directorios vacíos

El módulo OS en Python se utiliza para interactuar con el sistema operativo. Este módulo viene con el módulo de utilidad estándar de Python, por lo que no es necesario instalarlo externamente. Todas las funciones en el módulo del sistema operativo se activan OSError en el caso de nombres y rutas de archivo no válidos o inaccesibles, u otros argumentos que tienen el tipo correcto pero que el sistema operativo no acepta.

os.walk()El método de este módulo se puede utilizar para enumerar todos los directorios vacíos. 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 con raíz en la parte superior del directorio (incluida la parte superior misma), produce una tupla de 3 ( dirpath, dirnames, filenames).

  • 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: suponga que los directorios se ven así:

Python-list-of-empty-directories

Queremos imprimir todos los directorios vacíos. Como este método devuelve la tupla de subdirectorios y archivos, comprobaremos el tamaño de cada tupla y si el tamaño es cero, el directorio estará vacío. A continuación se muestra la implementación.

# Python program to list out
# all the empty directories
  
  
import os
  
# List to store all empty
# directories
empty = []
  
# Traversing through Test
for root, dirs, files in os.walk('Test'):
  
    # Checking the size of tuple
    if not len(dirs) and not len(files):
  
        # Adding the empty directory to
        # list
        empty.append(root)
  
Print("Empty Directories:")
print(empty)

Producción:

Empty Directories:
['Test\\A\\A2', 'Test\\B', 'Test\\D\\E']

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 empty directories
  
  
import os
  
# List comprehension to enter
# all empty directories to list
  
empty = [root for root, dirs, files, in os.walk('Test')
                   if not len(dirs) and not len(files)]
  
print("Empty Directories:")
print(empty)

Producción:

Empty Directories:
['Test\\A\\A2', 'Test\\B', 'Test\\D\\E']

Publicación traducida automáticamente

Artículo escrito por nikhilaggarwal3 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 *