Python Glob rekursiv

Python Glob rekursiv
Glob er et overordnet ord som beskriver mange strategier som kan brukes til å matche visse mønstre i samsvar med retningslinjene som er assosiert med UNIX -skallet. Både Linux og Unix har operativsystemer og skjell som støtter glob, og begge har systembiblioteker som støtter Glob () -funksjonen.

Glob -modulen i Python kan brukes til å skaffe filer og banenavn som samsvarer med et spesifisert mønster. Mønsterreglene for GLOB holder seg til standarden som er angitt av UNIX for utvidelse av banen. I tillegg til dette er det forventet, per benchmarks, at det vil være raskere enn eksisterende tilnærminger for å matche banenavnene i katalogene. I tillegg til å søke etter en nøyaktig streng, kan vi bruke jokertegnene (“*,?, [Ranges]) med en klode for å gjøre prosessen med å hente ut henting mer enkel og brukervennlig.

Ved å lese følgende artikkel vil du få en oversikt over Glob () -funksjonen, som er et nyttig verktøy for å finne filer rekursivt gjennom Python -kode.

Syntaks for glob () -metoden er:

glob.glob (path_name, *, rekursiv = falsk)

Merk: den rekursive verdien er satt til falsk som standard.

Eksempel 1: Bruke Glob Recursive Method i et Python -program for å skrive ut navnet og kilden til de første 10 filene i den gitte katalogen

I dette eksemplet vil vi bruke Wild Card Range [0-9] for å finne alle filene hvis navn inneholder et nummer eller et hvilket som helst siffer før utvidelsen. Karakterområdet [0-9] tilsvarer ethvert enkelt siffer. Streken representerer et uavbrutt omfang av påfølgende tegn som er ordnet i henhold til karakterkoden for hver bokstav/siffer. Karakteren [0123456789] er en annen måte å skrive samme rekkeviddeverdi.

I den oppgitte koden importerer vi først globmodulen for å bruke metodene. I neste linje er A for Loop krysset i mappen som er spesifisert med Glob med Wild Card, [0-9]. Siden vi ikke spesifiserte om sløyfen er rekursiv eller ikke, vil den ikke være rekursiv som standard. I for -loopen skriver vi ut alle elementene i mappen. Den skriver bare ut filene som har noe siffer eller nummer før utvidelsen som vist på følgende skjermbilde:

Eksempel 2: Bruke den rekursive metoden for glob

Vi vil se hva som skjer hvis ingen jokertegn brukes i dette eksemplet.

I følgende kode importeres GLOB -modulen først. I neste linje er A for Loop krysset langs globen med en filsti. Vær oppmerksom på at banen er av filen i dette tilfellet, i motsetning til mappen i forrige sak. Dette betyr at det bare er ett element som matcher globen. Og som vi kan se, brukes ikke noe jokertegn; det har ingenting å sammenligne med. Som et resultat returnerer den filen som ble spesifisert som kan sees på utgangsterminalen i følgende skjermbilde:

Eksempel 3: Bruke Glob Recursive Method i et Python -program for å skrive ut navnet og kilden til alle filene som er til stede i den gitte katalogen

I dette eksemplet vil vi bruke stjerne “*” jokertegn og se hva det kommer tilbake.

I koden som er gitt, importeres den første Glob -modulen for å bruke metodene i koden vår. I neste linje er A for Loop krysset i Glob med en spesifisert mappebane for "Desktop". Mønsteret samsvarer med hvert banenavn (fil eller katalog) i "Desktop" -katalogen, men kommer ikke videre ettersom den andre parameteren ikke ble gitt, og som standard er det ikke-rekursiv. Den skriver ut alle elementene eller filene i mappen når den samsvarer med null tegn. Dette vises i følgende skjermbilde:

Eksempel 4: Bruke den rekursive metoden for glob

Et annet jokertegn som støttes av glob er "?”. I den posisjonen tilsvarer dette ethvert enkelt element i navnet.

I dette eksemplet importeres GLOB -modulen først. I neste linje er A for Loop krysset i Glob med en filsti for å matche et hvilket avslutter med “.tekst". Siden ingen fil oppfylte disse kriteriene, vises ingenting på utgangsterminalen som vist på følgende skjermbilde:

Eksempel 5: Bruke Glob Recursive Method i et Python -program for å skrive ut navnet og kilden til alle filene som er til stede i den gitte katalogen med en dobbel stjerne i banen sammen med den rekursive parameteren som er sant

I dette eksemplet vil vi lære om en annen wild card -bruk med glob. Det er en dobbel stjerne “**”. Dette lar programmet rekursivt samsvare med null eller flere underkataloger i den gjeldende katalogen.

I det første trinnet importeres Glob -modulen. Deretter “globen.Glob "-metoden kreves for en mappesti med en dobbel stjerne“ ** ”Wild Card and Recursive = True. Dette gjør at programmet rekursivt kan samsvare med null eller flere underkataloger i den gjeldende katalogen og lagre listen over filer i variabelen som heter “F”. I neste linje krysses A for Loop langs listen over filer i “F” og vises på utgangsterminalen ved å bruke utskriftskommandoen som vist i følgende skjermbilde:

Eksempel 6: Bruke den rekursive funksjonen Glob Iglob i et Python -program for å finne ut navnet og kilden til alle filene som er til stede i den gitte katalogen med en dobbel stjerne i banen sammen med den rekursive parameteren settet som True

I dette tilfellet vil vi utføre det identiske trikset som vi gjorde tidligere. Men heller enn å bruke glob.glob, vi vil bruke globen.iglob (). Syntaks for “glob.iglob ”er det samme som en glob.glob: glob.iglob (banenavn, rekursiv = falsk). Bortsett fra at den produserer en iterator, noe som betyr at ikke alle elementene lagres i minnet. Derfor kan det brukes på en langt mer effektiv måte.

I det første trinnet importeres Glob -modulen. Deretter “globen.Glob "-metoden kreves for en mappesti med en dobbel stjerne“ ** ”Wild Card and Recursive = True. Dette lar programmet rekursivt samsvare med null eller flere underkataloger i den gjeldende katalogen. Denne gangen lagres ingen liste i noen variabel. I neste linje krysses for -loopen langs IGLOB -banen med en peker og vises på utgangsterminalen ved å bruke utskriftskommandoen i hver løkke som vist i følgende skjermbilde:

Konklusjon

Glob () og iglob () er to viktige funksjoner som itererer gjennom banen enten lineært eller rekursivt basert på verdien av den andre parameteren, som kan være sant eller usant. Python har gjort dette mye mer effektivt som metode, noe som gjør det langt mer verdifullt enn noen annen manuell tilnærming. Forhåpentligvis hjalp denne artikkelen deg til å forstå hvordan disse funksjonene fungerer med sine forskjellige jokertegn og hvordan det gjør livet vårt enkelt.