Path.iterdir(), glob(), rglob() și walk() în Python

Căi (pathlib) Python 3.4+ (walk: 3.12+)

Parcurge conținutul unui director, cu sau fără subdirectoare, eventual filtrat după un model.

Sintaxă
p.iterdir()
p.glob(model)
p.rglob(model)
p.walk(top_down=True)

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() sau glob(). Nu este garantată; sortează rezultatul.

Comenzi înrudite