glob
er et generelt udtryk, der bruges til at definere teknikker til at matche specificerede mønstre i henhold til regler relateret til Unik shell. Systemer og skaller understøtter også glob og leverer også funktion glob() i systembiblioteker. I denne tutorial vil vi se glob()
funktionsbrug i Python programmeringssprog.
for at kunne bruge glob()
og relaterede funktioner skal vi importere glob
modulet. Husk, atglob
modul indeholderglob()
og andre relaterede funktioner.
import glob
præcis streng søg
Vi starter med et simpelt eksempel. Vi vil se, hvordan vi matcher det nøjagtige streng-eller filnavn med en absolut sti. I dette eksempel vil vi liste filen /home/ismail/poftut.c
. Vi kan se eksempel nedenfor, at funktionen returnerer en liste, der indeholder matches.
glob.glob("/home/ismail/poftut.c")
jokertegn
jokertegn er vigtig Glob operator for Glob operationer. Jokertegn eller stjerne bruges til at matche nul eller flere tegn. Jokertegn angav, at der kan være nul tegn eller flere tegn, hvor tegn ikke er vigtigt. I dette eksempel matcher vi filer, der har.txt
udvidelse.
glob.glob("/home/ismail/*.txt")
Som vi kan se, at der er mange .txt
filer, der vender tilbage i en python-liste.
jokertegn med Multilevel mapper
Vi kan bruge jokertegn for at angive multilevel mapper. Hvis vi vil søge et niveau ned mapper for specificeret glob, bruger vi /*/
. I dette eksempel søger vi efter .txt
filer i et niveau ned mapper i/home/ismail
. Dette kaldes også” glob glob”, fordi vi bruger modulnavnet glob og funktionen glob, der leveres af glob-modulet.
glob.glob("/home/ismail/*/*.txt")
jokertegn med enkelt tegn
der er et spørgsmålstegn, der bruges til at matche enkelt tegn. Dette kan være nyttigt, hvis vi ikke kender enkelt tegn for givet navn. I dette eksempel matcher vi filer med filer file?.txt
fil, hvor disse matcher
- fil.tekst
- fil1.
- fil5.
- …
glob.glob("/home/ismail/file?.txt")
flere tegn
Glob understøtter også alfabetiske og numeriske tegn. Vi kan bruge bruges til at afslutte tegnområde. Vi kan sætte hvad vi vil matche mellem firkantede parenteser. I dette eksempel matcher vi filer og mapper Navne, der starter en af
e,m,p
.
glob.glob("/home/ismail/*.tx?")
nummerserier
i nogle tilfælde vil vi måske matche nummerområdet. Vi kan bruge-
dash til at angive start-og slutnumre. I dette eksempel matcher vi 0 til 9 med 0-9
. I dette eksempel matcher vi fil-og mappenavne, der indeholder tal fra 0 til 9.
glob.glob("/home/ismail/**")
Alfabetområder
Vi kan også definere alfabetområder svarende til talområder. vi bruger a-z
til små bogstaver, hvor A-Å til store bogstaver. Hvad hvis vi har brug for at matche lavere og store bogstaver i en enkelt sætning. Vi kan bruge a-Å til at matche både lavere og store bogstaver. I dette eksempel matcher vi filer og mappenavne, der starter med bogstaver mellem a
og c
glob.glob("/home/ismail/*")
returgenerator med iglob() mehtod
generelt bruges Glob-metoden til at liste filer til de angivne mønstre. Men i nogle tilfælde kan notering og opbevaring af dem være et kedeligt arbejde. Så iglob()
funktionen kan bruges til at oprette en iterator, som kan bruges til at gentage filnavne med next()
funktionen.
import glob
gen = glob.iglob("*.txt")
for item in gen:
print(item)
spring over specifikke tegn med escape () – metoden
escape()
– funktionen kan bruges til at springe over eller ikke liste nogle filer, som disse navne har specificerer tegn. For eksempel, hvis vi vil springe filerne over, indeholder disse navne -
eller _
eller #
vi kan bruge escape () – funktionen ved at angive disse tegn.
chars_skip = "-_#"
for char_skip in chars_skip:
esc_set = "*" + glob.escape(char_skip)+ "*" + ".txt"
for txt in (glob.glob(esc_set)):
print(txt)