Listar subdirectorios en Python

Muhammad Maisam Abbas 30 enero 2023
  1. Enumere los subdirectorios con el módulo glob en Python
  2. Enumere los subdirectorios con la función os.scandir() en Python
  3. Enumere los subdirectorios con la función os.walk() en Python
Listar subdirectorios en Python

Hay tres métodos efectivos que puede usar para listar todos los subdirectorios dentro de un directorio específico en Python: la función glob.glob (), la función os.scandir () y la función os.walk (). Este tutorial demostrará cómo puede trabajar con estas funciones para enumerar subdirectorios en Python.

Enumere los subdirectorios con el módulo glob en Python

El módulo glob se utiliza para obtener nombres de ruta que coincidan con un patrón específico. Podemos usar la función glob() dentro del módulo glob de Python para listar todos los subdirectorios de un directorio principal especificado especificando /*/ al final de la ruta del directorio. El siguiente fragmento de programa nos muestra cómo listar todos los subdirectorios dentro del directorio principal usando el módulo glob:

import os
from glob import glob

glob(os.getcwd() + "/*/", recursive=True)

Producción :

['/content/sample_data/', '/content/subdirectory/']

Enumeramos todos los subdirectorios de nuestro directorio de trabajo actual con el módulo glob en el código anterior. La desventaja de este método es que no muestra ningún directorio oculto o directorio donde el nombre del directorio comience con un punto .; solo muestra los subdirectorios inmediatos.

Enumere los subdirectorios con la función os.scandir() en Python

os es un módulo integrado en Python que se puede utilizar para muchas funciones relacionadas con el sistema operativo, como el almacenamiento de archivos. La os.scandir() función puede usarse para listar todos los subdirectorios de un directorio principal especificado. Esta función toma la ruta del directorio como parámetro de entrada y devuelve un iterador que se puede usar para recorrer archivos y directorios dentro de la ruta.

El siguiente fragmento de código nos muestra cómo listar todos los subdirectorios dentro del directorio principal con la función os.scandir():

import os

[f.path for f in os.scandir(os.getcwd()) if f.is_dir()]

Producción :

['/content/.config',
 '/content/.ipynb_checkpoints',
 '/content/sample_data',
 '/content/subdirectory']

Enumeramos todos los subdirectorios de nuestro directorio de trabajo actual con la función os.scandir() en el código anterior. Este proceso es una mejora con respecto al enfoque anterior porque también enumera los directorios ocultos o los directorios donde el nombre del directorio comienza con un punto .. La única desventaja de este método es que solo muestra los directorios secundarios inmediatos del directorio principal principal. No coloca los subsubdirectorios dentro del directorio principal.

Enumere los subdirectorios con la función os.walk() en Python

La función os.walk() es otro método que puede usarse para listar todos los subdirectorios dentro de un único directorio principal en Python. La función os.walk() toma la ruta del directorio principal como parámetro de entrada y devuelve un conjunto de tuplas, donde el primer elemento de cada tupla es la ruta de un subdirectorio dentro del árbol de directorios. Esto incluye todos los subdirectorios y sus subsubdirectorios hasta que finaliza el árbol de directorios.

La función os.walk() también nos da los directorios ocultos o los directorios donde el nombre del directorio comienza con un punto .. El siguiente fragmento de código nos muestra cómo listar todos los subdirectorios dentro de un directorio principal con la función os.walk():

import os

[x[0] for x in os.walk(os.getcwd())]

Producción :

['/content',
 '/content/.config',
 '/content/.config/logs',
 '/content/.config/logs/2021.05.06',
 '/content/.config/configurations',
 '/content/.ipynb_checkpoints',
 '/content/sample_data',
 '/content/sample_data/.ipynb_checkpoints',
 '/content/sample_data/subsubdirectory',
 '/content/subdirectory']

Enumeramos todos los subdirectorios de nuestro directorio de trabajo actual con la función os.scandir() en el programa anterior. Como podemos ver, la salida muestra todos los directorios dentro del árbol de directorios. El resultado también incluye todos los directorios ocultos.

Aunque el enfoque os.walk() nos muestra todos los subdirectorios y subsubdirectorios con todos los directorios ocultos, todos los métodos discutidos anteriormente tienen sus propios casos de uso únicos y son útiles en diferentes escenarios. El mejor enfoque entre los que discutimos depende del problema específico que está tratando de resolver.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Artículo relacionado - Python Directory