Path.match() și Path.full_match() în Python

Căi (pathlib) Python 3.4+ (full_match: 3.13+)

Verifică dacă o cale se potrivește unui model de tip glob, fără să acceseze discul.

Sintaxă
p.match(model, *, case_sensitive=None)
p.full_match(model, *, case_sensitive=None)

Ce face Path.match() și Path.full_match()

match() compară modelul cu sfârșitul căii, componentă cu componentă: Path("a/b/c.py").match("*.py") este adevărat. Dacă modelul este absolut, trebuie să se potrivească toată calea.

full_match() (3.13+) cere potrivirea întregii căi și înțelege ** ca „orice număr de directoare”. Ambele lucrează doar cu textul căii.

Parametri

Parametru Descriere
model Modelul glob.
case_sensitive Opțional. Ține cont de majuscule.

Ce returnează

True sau False.

Exemple

Exemplul 1: Potriviri parțiale și complete

from pathlib import PurePath
p = PurePath("proiect/src/utilitare/text.py")
print(p.match("*.py"), p.match("utilitare/*.py"), p.match("src/*.py"))
print(p.full_match("*.py"), p.full_match("proiect/**/*.py"))
print(PurePath("POZA.JPG").match("*.jpg", case_sensitive=False))

Rezultat

True True False
False True
True

Greșeli frecvente

  • Te aștepți ca match("src/*.py") să accepte fișiere din subdirectoarele lui src. * înseamnă exact o componentă; folosește full_match cu **.

Comenzi înrudite