navegar por las carpetas con python

Tengo una carpeta ROOT y dentro de muchas carpetas diferentes (asummos N), que por simplicidad llamo F1, F2 y así sucesivamente …

Necesito trabajar con el archivo dentro de estas carpetas. Si tengo una sola carpeta, sé que puedo hacer:

os.chdir(".") #I'm workingo in ROOT for filename in glob.glob("*.txt"): #I can work with the i-th file... 

Pero lo que necesito hacer es algo como esto (como pseudo-código):

 os.chdir(".") #I'm working in ROOT for Fi-th in ROOT: #for each folder in the ROOT main folder for filename in Fi-th("*.txt"): #I select only the file with this extention #process data inside i-th file 

Quiero decir que tengo que ir dentro de la primera carpeta (F1) y procesar todo el archivo (o si es posible todo el archivo .txt), luego debo ir dentro de la F2 y procesar todo el archivo …

os.walk realizará la recursión de un directorio y fnmatch.filter coincidirá con los patrones de nombre de archivo. Ejemplo simple:

 import os import fnmatch for path,dirs,files in os.walk('.'): for f in fnmatch.filter(files,'*.txt'): fullname = os.path.abspath(os.path.join(path,f)) print(fullname)