Listar todos los archivos en directorio y subdirectorios en Python

Fariba Laiq 30 enero 2023
  1. Use os.walk() para listar todos los archivos en el directorio y subdirectorios en Python
  2. Use listdir() para listar todos los archivos en el directorio y subdirectorios en Python
  3. Use glob para listar todos los archivos en el directorio y subdirectorios en Python
Listar todos los archivos en directorio y subdirectorios en Python

Python proporciona muchas formas de acceder a una lista de archivos en un directorio y subdirectorios. Esta guía lo guiará a través de os.walk(), listdir() y glob.

Use os.walk() para listar todos los archivos en el directorio y subdirectorios en Python

El módulo os en Python proporciona un medio para interactuar con el sistema operativo. Tiene muchas funciones integradas que se ocupan del sistema de archivos.

Podemos buscar, crear, eliminar y cambiar los directorios usando este módulo. El caminar() es un método recursivo que genera los nombres de los archivos en un árbol de directorios caminando de arriba hacia abajo o de abajo hacia arriba.

En el siguiente código, hemos mostrado los archivos en el directorio y los subdirectorios de MyFolder. En nuestro caso, esta carpeta se encuentra en el directorio de inicio del entorno de Python.

Código de ejemplo:

import os

root = "MyFolder"
for path, subdirs, files in os.walk(root):
    for name in files:
        print(os.path.join(path, name))

Producción :

MyFolder\text_file1.txt
MyFolder\text_file2.txt
MyFolder\SubFolder1\text_file3.txt
MyFolder\SubFolder1\text_file4.txt

Use listdir() para listar todos los archivos en el directorio y subdirectorios en Python

En el siguiente código, recorremos el árbol de directorios y accedemos a sus archivos y subarchivos sin utilizar el método caminar. Hemos especificado la carpeta raíz MyFolder como punto de partida.

Luego accedimos a los directorios y subdirectorios de esa carpeta usando el listdir() y los almacenamos en elementos. Hemos concatenado los nombres de los elementos con la ruta anterior y comprobado si se trata de un directorio mediante el método isdir().

Si es así, seguiremos buscando en ese directorio y aplicaremos el mismo procedimiento. Hemos agregado el nombre del archivo a la ruta anterior si es un nombre de archivo y los mostramos.

Código de ejemplo:

import os

root = "MyFolder"
files = []
walk = [root]
while walk:
    folder = walk.pop(0) + "/"
    items = os.listdir(folder)  # items = folders + files
    for i in items:
        i = folder + i
        (walk if os.path.isdir(i) else files).append(i)
print(files)

Producción :

['MyFolder/text_file1.txt', 'MyFolder/text_file2.txt', 'MyFolder/SubFolder1/text_file3.txt', 'MyFolder/SubFolder1/text_file4.txt']

Use glob para listar todos los archivos en el directorio y subdirectorios en Python

El glob es un módulo incorporado en Python que significa global. Este módulo devuelve todas las rutas de archivos cuyo nombre y extensión coincidan con un patrón específico.

Aquí hemos utilizado *.*, que indica cualquier nombre de archivo que tenga cualquier extensión. Usamos el glob.glob() para encontrar archivos recursivamente dentro de un directorio o subdirectorio.

El patrón ** coincidirá con cualquier archivo y cero o más carpetas y subdirectorios si recursivo se establece en True.

Código de ejemplo:

import glob

path = "MyFolder\**\*.*"
for file in glob.glob(path, recursive=True):
    print(file)

Producción :

MyFolder\text_file1.txt
MyFolder\text_file2.txt
MyFolder\SubFolder1\text_file3.txt
MyFolder\SubFolder1\text_file4.txt
Fariba Laiq avatar Fariba Laiq avatar

I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.

LinkedIn

Artículo relacionado - Python Directory