Python Glob() Funksjon For Å Matche Bane, Katalog, Filnavn Med Eksempler

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
Import Glob Modul

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")
Nøyaktig Strengsøk

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")
Jokertegn

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")
Jokertegn med Flernivåkataloger

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?")
Tegnområder

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/**")
Tallområder

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/*")
alphabet range

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)
Returgenerator Med Iglob() Mehtod

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)

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.