Cod sursă: Lib/glob.py

Modul glob găsește toate numele de cale care se potrivesc cu un model specificatîn conformitate cu regulile folosite de shell-ul Unix, deși rezultatele sunt returnate într-o ordine arbitrară. Nu se face nici o expansiune cu tilde, dar *, ? și caracterele exprimate cu se vor potrivi corect. Acest lucru este realizat prin utilizarea funcțiilor os.scandir() și fnmatch.fnmatch() în mod concertat, și nu prin invocarea efectivă a unui subshell. Rețineți că, spre deosebire de fnmatch.fnmatch(),glob tratează numele de fișiere care încep cu un punct (.) ca pe niște cazuri speciale.(Pentru extinderea tildei și a variabilelor de shell, utilizați os.path.expanduser() șios.path.expandvars().)

Pentru o potrivire literală, înfășurați metacaracterele între paranteze.De exemplu, '' se potrivește cu caracterul '?'.

Vezi și

Modulul pathlib oferă obiecte de cale de nivel înalt.

glob.glob(pathname, *, recursive=False)¶

Întoarce o listă eventual goală de nume de căi de acces care se potrivesc cu pathname, care trebuie să fie un șir de caractere care să conțină o specificație de cale de acces. pathname poate fi fie absolută (ca /usr/src/Python-1.5/Makefile), fie relativă (ca../../Tools/*/*.gif), și poate conține caractere joker de tip shell. Brokensymlink-urile sunt incluse în rezultate (ca în shell). Sortarea sau nu a rezultatelor depinde de sistemul de fișiere. Dacă un fișier care îndeplinește condițiile este eliminat sau adăugat în timpul apelării acestei funcții, nu este specificat dacă numele căii de acces pentru acel fișier va fi inclus.

Dacă recursivitatea este adevărată, modelul „**” se va potrivi cu orice fișier și zero sau mai multe directoare, subdirectoare și legături simbolice către directoare. Dacă modelul este urmat de un os.sep sau os.altsep, atunci fișierele nu se vor potrivi.

Răspunde la un eveniment de audit glob.glob cu argumentele pathname, recursive.

Nota

Utilizarea modelului „**” în arborele de directoare de mari dimensiuni poate consuma o cantitate exagerată de timp.

Schimbat în versiunea 3.5: Suport pentru globi recursivi folosind „**„.

glob.iglob(pathname, *, recursive=False)¶

Întoarce un iterator care produce aceleași valori ca glob()fără să le stocheze efectiv pe toate simultan.

Răspunde la un eveniment de audit glob.glob cu argumentele pathname, recursive.

glob.escape(pathname)¶

Scoate toate caracterele speciale ('?', '*' și '.txt'.

Noi în versiunea 3.4.

De exemplu, considerați un director care conține următoarele fișiere:1.gif, 2.txt, card.gif și un subdirectoriu subcare conține doar fișierul 3.txt. glob() va produce următoarele rezultate. Observați cum sunt păstrate toate componentele anterioare ale căii de acces.

>>> import glob>>> glob.glob('./.*')>>> glob.glob('*.gif')>>> glob.glob('?.gif')>>> glob.glob('**/*.txt', recursive=True)>>> glob.glob('./**/', recursive=True)

Dacă directorul conține fișiere care încep cu ., acestea nu se vor potrivi în mod implicit. De exemplu, luați în considerare un director care conține card.gif și.card.gif:

>>> import glob>>> glob.glob('*.gif')>>> glob.glob('.c*')

Vezi și

Modul fnmatch

Expansiune de nume de fișier (nu de cale) în stil shell

.

Lasă un răspuns

Adresa ta de email nu va fi publicată.