Sådan bruger du Pythons glob-modul til at finde filer efter mønster

glob-modulet i Python er et kraftfuldt værktøj til at finde filer og mapper, der matcher et specificeret mønster. Det er især nyttigt, når du skal søge efter filer med specifikke udvidelser eller navne i en mappe. Denne artikel vil guide dig gennem brugen af ​​glob modulet til at finde filer effektivt.

Introduktion til glob-modulet

glob modulet giver mulighed for at liste filer og mapper ved hjælp af Unix shell-stil jokertegn. Dette er nyttigt til opgaver som filsøgninger, batchbehandling og mere. Modulet indeholder funktioner, der giver dig mulighed for at matche filnavne med mønstre, hvilket gør filhåndtering lettere.

Grundlæggende brug af glob

For at bruge glob-modulet skal du importere det og derefter bruge glob.glob()-funktionen til at finde filer, der matcher et mønster. De mønstre, du bruger, kan omfatte jokertegn såsom * (matcher et vilkårligt antal tegn) og ? (matcher et enkelt tegn).

Eksempler

Find filer med en specifik udvidelse

For at finde alle filer med filtypenavnet .txt i en mappe kan du f.eks. bruge:

import glob

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

Find filer i en undermappe

For at finde alle filer med en specifik udvidelse i en undermappe skal du angive undermappen i mønsteret:

import glob

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

Brug af jokertegn

Jokertegn kan hjælpe dig med at matche et bredere udvalg af filer. For eksempel for at finde alle tekstfiler, der starter med "report":

import glob

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

Find filer med flere udvidelser

Du kan også bruge glob til at finde filer med flere udvidelser ved at bruge et mønster, der inkluderer flere jokertegn:

import glob

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

Avanceret brug

Ud over simple mønstre understøtter glob-modulet mere komplekse mønstre. For eksempel kan du bruge mønstre som ** til rekursivt at søge i mapper.

Rekursiv søgning

For at søge efter filer rekursivt i alle undermapper skal du bruge **-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)

Konklusion

glob-modulet er et vigtigt værktøj til at administrere filer i Python, så du nemt kan søge efter filer ved hjælp af mønstre. Uanset om du arbejder med bestemte filtyper, søger gennem mapper eller udfører komplekse søgninger, giver glob en enkel og effektiv løsning.