0Pricing
Python Academy · Lekcja

Wzorce glob i iterowanie

Znajduj pliki za pomocą wzorców glob

Wzorce glob i iterowanie to bezpłatna lekcja Python Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Python Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Python Academy zawiera 4 lekcji w sumie.

Wyszukiwanie plików

pathlib ułatwia wyświetlanie zawartości katalogów i wyszukiwanie plików pasujących do wzorca. Najważniejsze metody to iterdir, glob i rglob.

Przygotowanie przykładowego drzewa

Aby poznać te metody, najpierw utworzymy niewielki katalog plików. Przygotowanie wykorzystuje wyłącznie bibliotekę standardową.

from pathlib import Path

root = Path('sample')
root.mkdir(exist_ok=True)
(root / 'a.txt').write_text('1')
(root / 'b.txt').write_text('2')
(root / 'c.log').write_text('3')
print('created files')

iterdir wyświetla zawartość

iterdir() zwraca kolejno każdy wpis znajdujący się bezpośrednio w katalogu, po jednym obiekcie Path dla każdego elementu.

from pathlib import Path

root = Path('sample')
for entry in sorted(root.iterdir()):
    print(entry.name)

glob ze wzorcem

glob() wyszukuje wpisy pasujące do wzorca w stylu powłoki. Symbol wieloznaczny * dopasowuje dowolny ciąg znaków.

from pathlib import Path

root = Path('sample')
for txt in sorted(root.glob('*.txt')):
    print(txt.name)

Symbol wieloznaczny dla jednego znaku

Symbol wieloznaczny ? dopasowuje dokładnie jeden znak, co przydaje się w przypadku nazw o stałej długości.

from pathlib import Path

root = Path('sample')
for m in sorted(root.glob('?.txt')):
    print(m.name)

Zakresy znaków

Nawiasy kwadratowe dopasowują dowolny pojedynczy znak z określonego zbioru lub zakresu, podobnie jak w mechanizmie globowania powłoki.

from pathlib import Path

root = Path('sample')
for m in sorted(root.glob('[ab].txt')):
    print(m.name)

Rekurencyjny glob za pomocą rglob

rglob() przeszukuje katalog i wszystkie jego podkatalogi. Jest równoważne wywołaniu glob('**/pattern').

from pathlib import Path

root = Path('sample')
(root / 'nested').mkdir(exist_ok=True)
(root / 'nested' / 'deep.txt').write_text('x')
for m in sorted(root.rglob('*.txt')):
    print(m)

Zliczanie dopasowań

Wyniki glob są iteratorami. Należy opakować jeden z nich w list(), aby policzyć dopasowania lub użyć ich ponownie.

from pathlib import Path

root = Path('sample')
txts = list(root.rglob('*.txt'))
print('found', len(txts), 'text files')

Filtrowanie podczas iteracji

Globowanie można połączyć ze sprawdzaniem za pomocą is_file lub is_dir, aby precyzyjnie filtrować wyniki.

from pathlib import Path

root = Path('sample')
files = [p for p in root.iterdir() if p.is_file()]
for f in sorted(files):
    print(f.name)

Przetwarzanie znalezionych plików

Po uzyskaniu dopasowań można odczytać każdy plik. W tym przykładzie sumujemy zawartość wszystkich plików tekstowych w drzewie.

from pathlib import Path

root = Path('sample')
total = 0
for p in root.rglob('*.txt'):
    text = p.read_text().strip()
    if text.isdigit():
        total += int(text)
print('total:', total)

Sortowanie wyników glob

Globowanie nie gwarantuje określonej kolejności. Gdy potrzebne są deterministyczne wyniki, na przykład podczas tworzenia raportu, należy opakować wyniki w sorted().

from pathlib import Path

root = Path('sample')
for p in sorted(root.glob('*'), key=lambda x: x.name):
    print(p.name)

Szybkie sprawdzenie

Czym różnią się glob i rglob?

Podsumowanie

Poznali Państwo sposób wyszukiwania plików za pomocą wzorców glob.

  • iterdir wyświetla zawartość bezpośrednią katalogu.
  • glob dopasowuje wzorzec (*, ?, [...]).
  • rglob przeszukuje katalogi rekurencyjnie.
  • Globowanie można łączyć z filtrami is_file/is_dir, a następnie odczytywać dopasowane pliki.

Często zadawane pytania

Czy lekcja „Wzorce glob i iterowanie” jest bezpłatna?

Tak — pełny tekst „Wzorce glob i iterowanie” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Python Academy, przejdź na CoddyKit PRO. Kurs Python Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Wzorce glob i iterowanie”?

Znajduj pliki za pomocą wzorców glob Ćwiczysz Python Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Python Academy?

Nie wymagamy żadnego doświadczenia. Python Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.

Ile czasu zajmuje lekcja „Wzorce glob i iterowanie”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Python Academy?

Tak. Każda lekcja Python Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Obiekt Path
  2. Odczyt i zapis plików
  3. Wzorce glob i iterowanie
  4. Operacje na ścieżkach
← Powrót do Python Academy