glob
er et generelt begrep som brukes til å definere teknikker for å matche angitte mønstre i henhold til regler relatert Til Unix shell. Linux og Unix-systemer og skjell støtter også glob og gir også funksjon glob () i systembiblioteker. I denne opplæringen vil vi se glob()
funksjonsbruk I Python programmeringsspråk.
for å kunne bruke glob()
og relaterte funksjoner må vi importere glob
modulen. Husk atglob
modulen inneholder glob()
og andre relaterte funksjoner.
import glob
Nøyaktig Strengsøk
vi starter med et enkelt eksempel. Vi vil se hvordan å matche eksakt streng eller filnavn med en absolutt bane. I dette eksemplet vil vi liste filen /home/ismail/poftut.c
. Vi kan se eksempel nedenfor at funksjonen returnerer en liste som inneholder treff.
glob.glob("/home/ismail/poftut.c")
jokertegn
jokertegn er viktig glob operatør for glob operasjoner. Jokertegn eller stjerne brukes til å matche null eller flere tegn. Jokertegn angav at det kan v re null tegn eller flere tegn der tegn ikke er viktig. I denne exmaple vil vi matche filer de har.txt
forlengelse.
glob.glob("/home/ismail/*.txt")
Som vi kan se at det er mange .txt
filer som kommer tilbake i en python-liste.
Jokertegn med Flernivåkataloger
Vi kan bruke jokertegn for å spesifisere flernivåkataloger. Hvis vi ønsker å søke ett nivå ned kataloger for spesifisert glob vil vi bruke /*/
. I dette eksemplet søker vi etter .txt
filer i ett nivå ned kataloger i /home/ismail
. Dette kalles også «glob glob» fordi vi bruker modulnavnet glob og funksjonen glob som leveres av glob-modulen.
glob.glob("/home/ismail/*/*.txt")
enkelt tegn jokertegn
det er et spørsmålstegn som brukes til å matche enkelt tegn. Dette kan være nyttig hvis vi ikke vet enkelt tegn for gitt navn. I dette eksemplet vil vi matche filer med filer file?.txt
fil hvor disse vil matche
- fil.txt
- fil1.txt
- fil5.txt
- …
glob.glob("/home/ismail/file?.txt")
Flere Tegn
Glob støtter også for alfabetiske og numeriske tegn også. Vi kan bruke brukes til å avslutte tegnområde. Vi kan sette hva vi vil matche mellom firkantede parenteser. I dette eksemplet vil vi matche filer og mapper navn de starter en av
e,m,p
.
glob.glob("/home/ismail/*.tx?")
nummerområder
i noen tilfeller vil vi kanskje matche nummerområdet. Vi kan bruke-
dash for å angi start-og sluttnumre. I dette eksemplet vil vi matche 0 til 9 med 0-9
. I dette eksemplet vil vi matche fil – og mappenavn som inneholder tall fra 0 til 9.
glob.glob("/home/ismail/**")
Alfabetområder
vi kan også definere alfabetområder som ligner på tallområder. vi vil bruke a-z
for små bokstaver hvor A-Z for store bokstaver. Hva om vi trenger å matche små og store bokstaver i en enkelt setning. Vi kan bruke a-Z for å matche både små og store bokstaver. I dette eksemplet vil vi matche filer og mappenavn som starter med bokstaver mellom a
og c
glob.glob("/home/ismail/*")
returgenerator med iglob() mehtod
generelt brukes glob-metoden til å liste filer for de angitte mønstrene. Men i noen tilfeller notering og lagring av dem kan være et kjedelig arbeid. Såiglob()
funksjonen kan brukes til å lage en iterator som kan brukes til å iterere filnavnene med next()
funksjonen.
import glob
gen = glob.iglob("*.txt")
for item in gen:
print(item)
hopp over bestemte tegn med escape() metode
escape()
funksjonen kan brukes til å hoppe over eller ikke liste noen filer disse navnene har angir tegn. For eksempel hvis vi ønsker å hoppe over filene disse navnene inneholder -
eller _
eller #
vi kan bruke escape () – funksjonen ved å gi disse tegnene.
chars_skip = "-_#"
for char_skip in chars_skip:
esc_set = "*" + glob.escape(char_skip)+ "*" + ".txt"
for txt in (glob.glob(esc_set)):
print(txt)