Glob es un término general utilizado para definir técnicas para hacer coincidir patrones específicos de acuerdo con reglas relacionadas con el shell de Unix. Los sistemas y shells Linux y Unix también admiten glob y también proporcionan funcionesglob()>en las bibliotecas del sistema.
En Python, el módulo glob se utiliza para recuperar archivos/nombres de ruta que coincide con un patrón específico. Las reglas de patrón de glob siguen las reglas de expansión de ruta estándar de Unix. También se predice que, según los puntos de referencia, es más rápido que otros métodos hacer coincidir nombres de rutas en directorios. Con glob también podemos usar comodines('*, ?, [ranges])>además de la búsqueda de cadenas exactas para hacer que la recuperación de rutas sea más simple y conveniente.
Nota: Este módulo viene integrado con Python, por lo que no es necesario instalarlo externamente.
Ejemplo:
producto escalar numeroso
# Python program to demonstrate> # glob using different wildcards> > > import> glob> > > print>(>'Named explicitly:'>)> for> name>in> glob.glob(>'/home/geeks/Desktop/gfg/data.txt'>):> >print>(name)> > # Using '*' pattern> print>(>'
Named with wildcard *:'>)> for> name>in> glob.glob(>'/home/geeks/Desktop/gfg/*'>):> >print>(name)> > # Using '?' pattern> print>(>'
Named with wildcard ?:'>)> for> name>in> glob.glob(>'/home/geeks/Desktop/gfg/data?.txt'>):> >print>(name)> > # Using [0-9] pattern> print>(>'
Named with wildcard ranges:'>)> for> name>in> glob.glob(>'/home/geeks/Desktop/gfg/*[0-9].*'>):> >print>(name)> |
>
>
Producción :

Usando la función Glob() para buscar archivos de forma recursiva
Podemos usar la funciónglob.glob()>oglob.iglob()>directamente desde el módulo global para recuperar rutas de forma recursiva desde el interior de los directorios/archivos y subdirectorios/subarchivos.
Sintaxis:
glob.glob(pathname, *, recursive=False)>
glob.iglob(pathname, *, recursive=False)>
Nota: Cuando se establece recursivoTrue> **>seguido del separador de ruta('./**/')>coincidirá con cualquier archivo o directorio.
Ejemplo:
# Python program to find files> # recursively using Python> > > import> glob> > > # Returns a list of names in list files.> print>(>'Using glob.glob()'>)> files>=> glob.glob(>'/home/geeks/Desktop/gfg/**/*.txt'>,> >recursive>=> True>)> for> file> in> files:> >print>(>file>)> > > # It returns an iterator which will> # be printed simultaneously.> print>(>'
Using glob.iglob()'>)> for> filename>in> glob.iglob(>'/home/geeks/Desktop/gfg/**/*.txt'>,> >recursive>=> True>):> >print>(filename)> |
programa java hola
>
>
Producción :
Para versiones anteriores de Python:
El método más sencillo es utilizar os.walk() ya que está específicamente diseñado y optimizado para permitir la navegación recursiva en un árbol de directorios. O también podemos usar os.listdir() para obtener todos los archivos en el directorio y subdirectorios y luego filtrarlos.
Veámoslo a través de un ejemplo.
Ejemplo:
# Python program to find files> # recursively using Python> > > import> os> > # Using os.walk()> for> dirpath, dirs, files>in> os.walk(>'src'>):> >for> filename>in> files:> >fname>=> os.path.join(dirpath,filename)> >if> fname.endswith(>'.c'>):> >print>(fname)> > '''> Or> We can also use fnmatch.filter()> to filter out results.> '''> for> dirpath, dirs, files>in> os.walk(>'src'>):> >for> filename>in> fnmatch.>filter>(files,>'*.c'>):> >print>(os.path.join(dirpath, filename))> > # Using os.listdir()> path>=> 'src'> dir_list>=> os.listdir(path)> for> filename>in> fnmatch.>filter>(dir_list,>'*.c'>):> >print>(os.path.join(dirpath, filename))> |
>
>
Producción :
./src/add.c ./src/subtract.c ./src/sub/mul.c ./src/sub/div.c ./src/add.c ./src/subtract.c ./src/sub/mul.c ./src/sub/div.c ./src/add.c ./src/subtract.c ./src/sub/mul.c ./src/sub/div.c>