Python Glob() funktion til at matche sti, mappe, filnavne med eksempler

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

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")
præcis streng søgning

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

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 .txtfiler 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 Multilevel mapper

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

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

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

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)
Returgenerator med iglob() Mehtod

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)

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.