Este código nos permite recorrer un directorio y sus subdirectorios si existen, y obtener el nombre de todos los ficheros que contienen, para realizar alguna operación (en el ejemplo imprimir en nuestra terminal).
import os
rootDir = 'Nombre_del_Directorio_principal'
for dirName, subdirList, fileList in os.walk(rootDir):
print('Directorio encontrado: %s' % dirName)
for fname in fileList:
ficheros= './' +dirName+"/"+fname
print(ficheros)
En el ejemplo el directorio principal contiene archivos y a su vez dos subdirectorios que también contienen ficheros. El resultado seria similar a este:
Directorio encontrado: Nombre_del_Directorio_principal
.\Nombre_del_Directorio_principal\fichero (1).txt
.\Nombre_del_Directorio_principal\fichero (2).txt
.\Nombre_del_Directorio_principal\fichero (3).txt
.\Nombre_del_Directorio_principal\fichero (4).txt
.\Nombre_del_Directorio_principal\fichero (5).txt
.\Nombre_del_Directorio_principal\fichero (6).txt
.\Nombre_del_Directorio_principal\fichero (7).txt
.\Nombre_del_Directorio_principal\fichero (8).txt
.\Nombre_del_Directorio_principal\fichero (9).txt
Directorio encontrado: Nombre_del_Directorio_principal\Nombre_Subdirectorio_1
.\Nombre_del_Directorio_principal\Nombre_Subdirectorio_1\fichero (17).txt
.\Nombre_del_Directorio_principal\Nombre_Subdirectorio_1\fichero (18).txt
.\Nombre_del_Directorio_principal\Nombre_Subdirectorio_1\fichero (19).txt
.\Nombre_del_Directorio_principal\Nombre_Subdirectorio_1\fichero (20).txt
.\Nombre_del_Directorio_principal\Nombre_Subdirectorio_1\fichero (21).txt
.\Nombre_del_Directorio_principal\Nombre_Subdirectorio_1\fichero (22).txt
Directorio encontrado: Nombre_del_Directorio_principal\Nombre_Subdirectorio_2
.\Nombre_del_Directorio_principal\Nombre_Subdirectorio_2\fichero (10).txt
.\Nombre_del_Directorio_principal\Nombre_Subdirectorio_2\fichero (11).txt
.\Nombre_del_Directorio_principal\Nombre_Subdirectorio_2\fichero (12).txt
.\Nombre_del_Directorio_principal\Nombre_Subdirectorio_2\fichero (13).txt
.\Nombre_del_Directorio_principal\Nombre_Subdirectorio_2\fichero (14).txt
.\Nombre_del_Directorio_principal\Nombre_Subdirectorio_2\fichero (15).txt
.\Nombre_del_Directorio_principal\Nombre_Subdirectorio_2\fichero (16).txt
Lista de ficheros de un directorio
Si no deseamos el contenido de los subdirectorios, el código se simplifica:
import os
rootDir = 'Nombre_del_Directorio_principal'
lista_de_ficheros = os.listdir(rootDir)
""" Resultado es lista_de_ficheros =
['fichero (1).txt', 'fichero (2).txt', 'fichero (3).txt',
'fichero (4).txt', 'fichero (5).txt', 'fichero (6).txt',
'fichero (7).txt', 'fichero (8).txt', 'fichero (9).txt',
'Nombre_Subdirectorio_1', 'Nombre_Subdirectorio_2']
"""