Glob är en allmän term som används för att definiera tekniker för att matcha specificerade mönster enligt regler relaterade till Unix-skal. Linux- och Unix-system och skal stöder också glob och ger även funktionglob()>i systembibliotek.
I Python används globmodulen för att hämta filer/sökvägar matchar ett specificerat mönster. Mönsterreglerna för glob följer standard Unix-vägexpansionsregler. Det förutspås också att det enligt benchmarks är snabbare än andra metoder att matcha sökvägar i kataloger. Med glob kan vi också använda jokertecken('*, ?, [ranges])>förutom exakt strängsökning för att göra sökvägshämtning enklare och bekvämare.
Notera: Denna modul kommer inbyggd med Python, så det finns ingen anledning att installera den externt.
Exempel:
sträng lägga till
# 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)> |
>
>
Utgång:

10 ml i oz
Använder Glob()-funktionen för att hitta filer rekursivt
Vi kan använda funktionenglob.glob()>ellerglob.iglob()>direkt från globmodulen för att hämta sökvägar rekursivt inifrån katalogerna/filerna och underkatalogerna/underfilerna.
Syntax:
glob.glob(pathname, *, recursive=False)>
glob.iglob(pathname, *, recursive=False)>
Notera: När rekursiv är inställdTrue> **>följt av vägavskiljare('./**/')>kommer att matcha alla filer eller kataloger.
Exempel:
java-arrayer
# 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)> |
>
>
Utgång:
För äldre versioner av python:
Den enklaste metoden är att använda os.walk() eftersom den är speciellt utformad och optimerad för att tillåta rekursiv bläddring av ett katalogträd. Eller så kan vi också använda os.listdir() för att få alla filer i kataloger och underkataloger och sedan filtrera bort.
full huggorm
Låt oss se det genom ett exempel-
Exempel:
konstruktörer i java
# 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))> |
>
>
Utgång:
./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>