Hvordan bruke Pythons glob-modul for å finne filer etter mønster

glob-modulen i Python er et kraftig verktøy for å finne filer og kataloger som samsvarer med et spesifisert mønster. Det er spesielt nyttig når du trenger å søke etter filer med spesifikke utvidelser eller navn i en katalog. Denne artikkelen vil veilede deg gjennom bruken av glob-modulen for å finne filer effektivt.

Introduksjon til glob-modulen

glob-modulen gir en måte å liste filer og kataloger ved å bruke Unix-skall-stil jokertegn. Dette er nyttig for oppgaver som filsøk, batchbehandling og mer. Modulen inneholder funksjoner som lar deg matche filnavn med mønstre, noe som gjør filbehandling enklere.

Grunnleggende bruk av glob

For å bruke glob-modulen, må du importere den og deretter bruke glob.glob()-funksjonen for å finne filer som samsvarer med et mønster. Mønstrene du bruker kan inkludere jokertegn som * (matcher et hvilket som helst antall tegn) og ? (matcher et enkelt tegn).

Eksempler

Finne filer med en bestemt utvidelse

For å finne alle filer med filtypen .txt i en katalog kan du for eksempel bruke:

import glob

# Find all .txt files in the current directory
txt_files = glob.glob('*.txt')
print(txt_files)

Finne filer i en underkatalog

For å finne alle filer med en bestemt utvidelse i en underkatalog, spesifiser underkatalogen i mønsteret:

import glob

# Find all .jpg files in the 'images' subdirectory
jpg_files = glob.glob('images/*.jpg')
print(jpg_files)

Bruker jokertegn

Jokertegn kan hjelpe deg med å matche et bredere utvalg av filer. For eksempel for å finne alle tekstfiler som begynner med "report":

import glob

# Find all files starting with 'report' and ending with .txt
report_files = glob.glob('report*.txt')
print(report_files)

Finne filer med flere utvidelser

Du kan også bruke glob for å finne filer med flere utvidelser ved å bruke et mønster som inkluderer flere jokertegn:

import glob

# Find all .txt and .md files
files = glob.glob('*.txt') + glob.glob('*.md')
print(files)

Avansert bruk

I tillegg til enkle mønstre, støtter glob-modulen mer komplekse mønstre. Du kan for eksempel bruke mønstre som ** for å søke rekursivt i kataloger.

Rekursivt søk

For å søke etter filer rekursivt i alle underkataloger, bruk **-mønsteret sammen med rekursive=True-argumentet:

import glob

# Find all .py files in the current directory and subdirectories
py_files = glob.glob('**/*.py', recursive=True)
print(py_files)

Konklusjon

glob-modulen er et viktig verktøy for å administrere filer i Python, slik at du enkelt kan søke etter filer ved hjelp av mønstre. Enten du jobber med spesifikke filtyper, søker gjennom kataloger eller utfører komplekse søk, gir glob en enkel og effektiv løsning.