37  Manejo de multiples archivos con glob

¡Bienvenide al mundo del listado de archivos eficiente con glob en Python! En esta sesión, te presentaremos el paquete glob como una herramienta poderosa para automatizar tareas que involucran el manejo de múltiples archivos y directorios. Aprenderás a utilizar patrones de coincidencia de caracteres, conocidos como “wildcards” o comodines, para seleccionar archivos específicos o grupos de archivos según tus necesidades. Descubrirás cómo glob te permite simplificar tu código, ahorrar tiempo y organizar tus datos de manera eficiente.

import glob
#Todos los archivos de un folder
glob.glob("../data/*")
['../data/matriz3x3_faltantes.txt',
 '../data/matriz10x10.txt',
 '../data/python.png',
 '../data/m10x10_int.txt',
 '../data/Cuernavaca_1dia_comas.csv',
 '../data/Cuernavaca_1dia_comas_Nans.csv',
 '../data/Cuernavaca_1dia_comas_duplicado.csv',
 '../data/Cuernavaca_To_1dia_comas.csv',
 '../data/Cuernavaca_To_1dia_comas.xlsx',
 '../data/obstacle2',
 '../data/Cuernavaca_1dia_comas_NULOS.csv',
 '../data/cuerna.epw',
 '../data/matriz3x3.txt',
 '../data/Cuernavaca_Enero_comas.csv',
 '../data/obstacle',
 '../data/matriz3x3_comment02.txt',
 '../data/matriz3x3_comment01.txt',
 '../data/Cuernavca_T1dia_tabulador.csv']
#Todos los archivos que terminen en csv
glob.glob("../data/*.csv")
['../data/Cuernavaca_1dia_comas.csv',
 '../data/Cuernavaca_1dia_comas_Nans.csv',
 '../data/Cuernavaca_1dia_comas_duplicado.csv',
 '../data/Cuernavaca_To_1dia_comas.csv',
 '../data/Cuernavaca_1dia_comas_NULOS.csv',
 '../data/Cuernavaca_Enero_comas.csv',
 '../data/Cuernavca_T1dia_tabulador.csv']
#Todos los archivos que empiecen con Cuerna
glob.glob("../data/Cuerna*")
['../data/Cuernavaca_1dia_comas.csv',
 '../data/Cuernavaca_1dia_comas_Nans.csv',
 '../data/Cuernavaca_1dia_comas_duplicado.csv',
 '../data/Cuernavaca_To_1dia_comas.csv',
 '../data/Cuernavaca_To_1dia_comas.xlsx',
 '../data/Cuernavaca_1dia_comas_NULOS.csv',
 '../data/Cuernavaca_Enero_comas.csv',
 '../data/Cuernavca_T1dia_tabulador.csv']
#Todos los archivos que tengan un primer caracter y luego uerna y cualquier terminacion
glob.glob("../data/?uerna*")
['../data/Cuernavaca_1dia_comas.csv',
 '../data/Cuernavaca_1dia_comas_Nans.csv',
 '../data/Cuernavaca_1dia_comas_duplicado.csv',
 '../data/Cuernavaca_To_1dia_comas.csv',
 '../data/Cuernavaca_To_1dia_comas.xlsx',
 '../data/Cuernavaca_1dia_comas_NULOS.csv',
 '../data/cuerna.epw',
 '../data/Cuernavaca_Enero_comas.csv',
 '../data/Cuernavca_T1dia_tabulador.csv']
glob.glob('../data/**/*', recursive=True)
['../data/matriz3x3_faltantes.txt',
 '../data/matriz10x10.txt',
 '../data/python.png',
 '../data/m10x10_int.txt',
 '../data/Cuernavaca_1dia_comas.csv',
 '../data/Cuernavaca_1dia_comas_Nans.csv',
 '../data/Cuernavaca_1dia_comas_duplicado.csv',
 '../data/Cuernavaca_To_1dia_comas.csv',
 '../data/Cuernavaca_To_1dia_comas.xlsx',
 '../data/obstacle2',
 '../data/Cuernavaca_1dia_comas_NULOS.csv',
 '../data/cuerna.epw',
 '../data/matriz3x3.txt',
 '../data/Cuernavaca_Enero_comas.csv',
 '../data/obstacle',
 '../data/matriz3x3_comment02.txt',
 '../data/matriz3x3_comment01.txt',
 '../data/Cuernavca_T1dia_tabulador.csv',
 '../data/obstacle2/unica.png',
 '../data/obstacle/u_norm_183.png',
 '../data/obstacle/u_norm_182.png',
 '../data/obstacle/u_norm_180.png',
 '../data/obstacle/u_norm_181.png',
 '../data/obstacle/u_norm_185.png',
 '../data/obstacle/u_norm_191.png',
 '../data/obstacle/u_norm_190.png',
 '../data/obstacle/u_norm_184.png',
 '../data/obstacle/u_norm_192.png',
 '../data/obstacle/u_norm_186.png',
 '../data/obstacle/u_norm_179.png',
 '../data/obstacle/u_norm_178.png',
 '../data/obstacle/u_norm_187.png',
 '../data/obstacle/u_norm_175.png',
 '../data/obstacle/u_norm_174.png',
 '../data/obstacle/u_norm_189.png',
 '../data/obstacle/u_norm_176.png',
 '../data/obstacle/u_norm_177.png',
 '../data/obstacle/u_norm_188.png',
 '../data/obstacle/u_norm_173.png']
glob.glob('../data/*/*', recursive=True)
['../data/obstacle2/unica.png',
 '../data/obstacle/u_norm_183.png',
 '../data/obstacle/u_norm_182.png',
 '../data/obstacle/u_norm_180.png',
 '../data/obstacle/u_norm_181.png',
 '../data/obstacle/u_norm_185.png',
 '../data/obstacle/u_norm_191.png',
 '../data/obstacle/u_norm_190.png',
 '../data/obstacle/u_norm_184.png',
 '../data/obstacle/u_norm_192.png',
 '../data/obstacle/u_norm_186.png',
 '../data/obstacle/u_norm_179.png',
 '../data/obstacle/u_norm_178.png',
 '../data/obstacle/u_norm_187.png',
 '../data/obstacle/u_norm_175.png',
 '../data/obstacle/u_norm_174.png',
 '../data/obstacle/u_norm_189.png',
 '../data/obstacle/u_norm_176.png',
 '../data/obstacle/u_norm_177.png',
 '../data/obstacle/u_norm_188.png',
 '../data/obstacle/u_norm_173.png']
imgs = glob.glob("../data/obstacle/*")
imgs
['../data/obstacle/u_norm_183.png',
 '../data/obstacle/u_norm_182.png',
 '../data/obstacle/u_norm_180.png',
 '../data/obstacle/u_norm_181.png',
 '../data/obstacle/u_norm_185.png',
 '../data/obstacle/u_norm_191.png',
 '../data/obstacle/u_norm_190.png',
 '../data/obstacle/u_norm_184.png',
 '../data/obstacle/u_norm_192.png',
 '../data/obstacle/u_norm_186.png',
 '../data/obstacle/u_norm_179.png',
 '../data/obstacle/u_norm_178.png',
 '../data/obstacle/u_norm_187.png',
 '../data/obstacle/u_norm_175.png',
 '../data/obstacle/u_norm_174.png',
 '../data/obstacle/u_norm_189.png',
 '../data/obstacle/u_norm_176.png',
 '../data/obstacle/u_norm_177.png',
 '../data/obstacle/u_norm_188.png',
 '../data/obstacle/u_norm_173.png']
imgs.sort()
imgs
['../data/obstacle/u_norm_173.png',
 '../data/obstacle/u_norm_174.png',
 '../data/obstacle/u_norm_175.png',
 '../data/obstacle/u_norm_176.png',
 '../data/obstacle/u_norm_177.png',
 '../data/obstacle/u_norm_178.png',
 '../data/obstacle/u_norm_179.png',
 '../data/obstacle/u_norm_180.png',
 '../data/obstacle/u_norm_181.png',
 '../data/obstacle/u_norm_182.png',
 '../data/obstacle/u_norm_183.png',
 '../data/obstacle/u_norm_184.png',
 '../data/obstacle/u_norm_185.png',
 '../data/obstacle/u_norm_186.png',
 '../data/obstacle/u_norm_187.png',
 '../data/obstacle/u_norm_188.png',
 '../data/obstacle/u_norm_189.png',
 '../data/obstacle/u_norm_190.png',
 '../data/obstacle/u_norm_191.png',
 '../data/obstacle/u_norm_192.png']