Ce face Path.iterdir(), glob(), rglob() și walk()
iterdir() dă elementele aflate direct în director, într-o ordine arbitrară. glob("*.txt") dă căile care se potrivesc unui model (* orice text, ? un caracter, ** orice număr de subdirectoare). rglob("*.txt") caută recursiv, în toate subdirectoarele.
walk() (3.12+) funcționează ca os.walk(): pentru fiecare director dă tuplul (director, subdirectoare, fișiere). Din 3.12, glob și rglob acceptă case_sensitive.
Parametri
| Parametru | Descriere |
|---|---|
model |
Modelul de tip glob. |
top_down, on_error, follow_symlinks |
Pentru walk. |
Ce returnează
Generatoare de căi (walk: de tupluri).
Exemple
Exemplul 1: Căutarea fișierelor
from pathlib import Path
for cale in ["site/index.html", "site/css/stil.css", "site/css/print.css", "site/img/logo.png"]:
Path(cale).parent.mkdir(parents=True, exist_ok=True)
Path(cale).touch()
print(sorted(p.name for p in Path("site").iterdir()))
print(sorted(p.name for p in Path("site/css").glob("*.css")))
print(sorted(str(p) for p in Path("site").rglob("*.*")))
print(sorted(str(p) for p in Path("site").glob("**/*.png")))
Rezultat
['css', 'img', 'index.html']
['print.css', 'stil.css']
['site/css/print.css', 'site/css/stil.css', 'site/img/logo.png', 'site/index.html']
['site/img/logo.png']
Exemplul 2: walk()
from pathlib import Path
for cale in ["arhiva/2025/ian.csv", "arhiva/2026/feb.csv", "arhiva/2026/mar.csv"]:
Path(cale).parent.mkdir(parents=True, exist_ok=True)
Path(cale).touch()
for director, subdirectoare, fisiere in sorted(Path("arhiva").walk()):
print(director, sorted(subdirectoare), sorted(fisiere))
Rezultat
arhiva ['2025', '2026'] []
arhiva/2025 [] ['ian.csv']
arhiva/2026 [] ['feb.csv', 'mar.csv']
Greșeli frecvente
- Te bazezi pe ordinea din
iterdir()sauglob(). Nu este garantată; sortează rezultatul.
Comenzi înrudite
os.walk() și os.fwalk(): Parcurge recursiv un arbore de directoare, dând pentru fiecare director subdirectoarele și fișierele lui.os.scandir() și os.DirEntry: Parcurge un director rapid, cu tipul și informațiile fiecărui element.Path.match() și Path.full_match(): Verifică dacă o cale se potrivește unui model de tip glob, fără să acceseze discul.