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.