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)