Listar todos los archivos en directorio y subdirectorios en Python
-
Use
os.walk()
para listar todos los archivos en el directorio y subdirectorios en Python -
Use
listdir()
para listar todos los archivos en el directorio y subdirectorios en Python -
Use
glob
para listar todos los archivos en el 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
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