Hur man använder Pythons glob-modul för att hitta filer efter mönster

Modulen glob i Python är ett kraftfullt verktyg för att hitta filer och kataloger som matchar ett specificerat mönster. Det är särskilt användbart när du behöver söka efter filer med specifika tillägg eller namn i en katalog. Den här artikeln guidar dig genom att använda modulen glob för att hitta filer effektivt.

Introduktion till modulen glob

Modulen glob ger ett sätt att lista filer och kataloger med hjälp av jokertecken i Unix-skal. Detta är användbart för uppgifter som filsökningar, batchbearbetning och mer. Modulen innehåller funktioner som låter dig matcha filnamn med mönster, vilket gör filhanteringen enklare.

Grundläggande användning av glob

För att använda glob-modulen måste du importera den och sedan använda glob.glob()-funktionen för att hitta filer som matchar ett mönster. Mönstren du använder kan inkludera jokertecken som * (matchar valfritt antal tecken) och ? (matchar ett enstaka tecken).

Exempel

Hitta filer med ett specifikt tillägg

Till exempel, för att hitta alla filer med tillägget .txt i en katalog kan du använda:

import glob

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

Hitta filer i en underkatalog

För att hitta alla filer med ett specifikt tillägg i en underkatalog, ange underkatalogen i mönstret:

import glob

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

Använder jokertecken

Jokertecken kan hjälpa dig att matcha ett bredare utbud av filer. Till exempel för att hitta alla textfiler som börjar med "report":

import glob

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

Hitta filer med flera filtillägg

Du kan också använda glob för att hitta filer med flera tillägg genom att använda ett mönster som innehåller flera jokerteckenmatchningar:

import glob

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

Avancerad användning

Förutom enkla mönster stöder glob-modulen mer komplexa mönster. Till exempel kan du använda mönster som ** för att rekursivt söka i kataloger.

Rekursiv sökning

För att söka efter filer rekursivt i alla underkataloger, använd **-mönstret tillsammans med rekursivt=True-argumentet:

import glob

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

Slutsats

Modulen glob är ett viktigt verktyg för att hantera filer i Python, så att du enkelt kan söka efter filer med hjälp av mönster. Oavsett om du arbetar med specifika filtyper, söker genom kataloger eller utför komplexa sökningar, ger glob en enkel och effektiv lösning.