Cum să utilizați modulul glob al lui Python pentru a găsi fișiere după model

Modulul glob din Python este un instrument puternic pentru a găsi fișiere și directoare care se potrivesc cu un model specificat. Este deosebit de util atunci când trebuie să căutați fișiere cu extensii sau nume specifice într-un director. Acest articol vă va ghida prin utilizarea modulului glob pentru a localiza fișierele în mod eficient.

Introducere în modulul glob

Modulul glob oferă o modalitate de a lista fișiere și directoare folosind caractere jokere în stil shell Unix. Acest lucru este util pentru activități precum căutările de fișiere, procesarea în loturi și multe altele. Modulul include funcții care vă permit să potriviți numele fișierelor cu modele, facilitând gestionarea fișierelor.

Utilizarea de bază a glob

Pentru a utiliza modulul glob, va trebui să-l importați și apoi să utilizați funcția glob.glob() pentru a găsi fișiere care corespund unui model. Modelele pe care le utilizați pot include metacaractere precum * (se potrivește cu orice număr de caractere) și ? (se potrivește cu un singur caracter).

Exemple

Găsirea fișierelor cu o anumită extensie

De exemplu, pentru a găsi toate fișierele cu extensia .txt într-un director, puteți utiliza:

import glob

# Find all .txt files in the current directory
txt_files = glob.glob('*.txt')
print(txt_files)

Găsirea fișierelor într-un subdirector

Pentru a găsi toate fișierele cu o anumită extensie într-un subdirector, specificați subdirectorul în model:

import glob

# Find all .jpg files in the 'images' subdirectory
jpg_files = glob.glob('images/*.jpg')
print(jpg_files)

Utilizarea wildcards

Wildcards vă pot ajuta să potriviți o gamă mai largă de fișiere. De exemplu, pentru a găsi toate fișierele text care încep cu "report":

import glob

# Find all files starting with 'report' and ending with .txt
report_files = glob.glob('report*.txt')
print(report_files)

Găsirea fișierelor cu extensii multiple

De asemenea, puteți utiliza glob pentru a găsi fișiere cu extensii multiple, utilizând un model care include mai multe potriviri cu caractere joker:

import glob

# Find all .txt and .md files
files = glob.glob('*.txt') + glob.glob('*.md')
print(files)

Utilizare avansată

Pe lângă modelele simple, modulul glob acceptă modele mai complexe. De exemplu, puteți folosi modele precum ** pentru a căuta recursiv directoare.

Căutare recursiva

Pentru a căuta fișiere recursiv în toate subdirectoarele, utilizați modelul ** împreună cu argumentul recursive=True:

import glob

# Find all .py files in the current directory and subdirectories
py_files = glob.glob('**/*.py', recursive=True)
print(py_files)

Concluzie

Modulul glob este un instrument esențial pentru gestionarea fișierelor în Python, permițându-vă să căutați fișiere folosind modele cu ușurință. Indiferent dacă lucrați cu anumite tipuri de fișiere, căutați prin directoare sau efectuați căutări complexe, glob oferă o soluție simplă și eficientă.