Jak używać modułu glob języka Python do wyszukiwania plików według wzorca

Moduł glob w Pythonie to potężne narzędzie do wyszukiwania plików i katalogów, które pasują do określonego wzorca. Jest szczególnie przydatny, gdy trzeba wyszukać pliki o określonych rozszerzeniach lub nazwach w katalogu. Ten artykuł przeprowadzi Cię przez użycie modułu glob w celu wydajnego lokalizowania plików.

Wprowadzenie do modułu glob

Moduł glob umożliwia wyświetlanie plików i katalogów za pomocą symboli wieloznacznych w stylu powłoki Unix. Jest to przydatne w przypadku zadań takich jak wyszukiwanie plików, przetwarzanie wsadowe i inne. Moduł zawiera funkcje, które umożliwiają dopasowywanie nazw plików do wzorców, ułatwiając zarządzanie plikami.

Podstawowe użycie glob

Aby użyć modułu glob, musisz go zaimportować, a następnie użyć funkcji glob.glob(), aby znaleźć pliki pasujące do wzorca. Wzory, których używasz, mogą zawierać symbole wieloznaczne, takie jak * (dopasowuje dowolną liczbę znaków) i ? (dopasowuje pojedynczy znak).

Przykłady

Znajdowanie plików o określonym rozszerzeniu

Na przykład, aby znaleźć wszystkie pliki z rozszerzeniem .txt w katalogu, możesz użyć:

import glob

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

Znajdowanie plików w podkatalogu

Aby znaleźć wszystkie pliki o określonym rozszerzeniu w podkatalogu, należy określić podkatalog we wzorcu:

import glob

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

Używanie symboli wieloznacznych

Symbole wieloznaczne mogą pomóc Ci dopasować szerszy zakres plików. Na przykład, aby znaleźć wszystkie pliki tekstowe zaczynające się od "report":

import glob

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

Znajdowanie plików z wieloma rozszerzeniami

Można również użyć glob, aby znaleźć pliki o wielu rozszerzeniach, stosując wzorzec obejmujący wiele dopasowań symboli wieloznacznych:

import glob

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

Zaawansowane użycie

Oprócz prostych wzorców moduł glob obsługuje bardziej złożone wzorce. Na przykład możesz używać wzorców takich jak ** do rekurencyjnego przeszukiwania katalogów.

Wyszukiwanie rekurencyjne

Aby rekurencyjnie wyszukiwać pliki we wszystkich podkatalogach, należy użyć wzorca ** wraz z argumentem recursive=True:

import glob

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

Wniosek

Moduł glob jest niezbędnym narzędziem do zarządzania plikami w Pythonie, umożliwiającym łatwe wyszukiwanie plików przy użyciu wzorców. Niezależnie od tego, czy pracujesz z określonymi typami plików, przeszukujesz katalogi, czy wykonujesz złożone wyszukiwania, glob zapewnia proste i skuteczne rozwiązanie.