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.