Come usare il modulo glob di Python per trovare file tramite pattern

Il modulo glob in Python è un potente strumento per trovare file e directory che corrispondono a uno schema specificato. È particolarmente utile quando devi cercare file con estensioni o nomi specifici in una directory. Questo articolo ti guiderà nell'uso del modulo glob per individuare i file in modo efficiente.

Introduzione al modulo glob

Il modulo glob fornisce un modo per elencare file e directory usando caratteri jolly in stile shell Unix. Ciò è utile per attività quali ricerche di file, elaborazione batch e altro. Il modulo include funzioni che consentono di abbinare nomi di file a pattern, semplificando la gestione dei file.

Utilizzo di base di glob

Per usare il modulo glob, dovrai importarlo e poi usare la funzione glob.glob() per trovare i file che corrispondono a un pattern. I pattern che usi possono includere caratteri jolly come * (corrisponde a qualsiasi numero di caratteri) e ? (corrisponde a un singolo carattere).

Esempi

Trovare file con un'estensione specifica

Ad esempio, per trovare tutti i file con estensione .txt in una directory, puoi usare:

import glob

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

Trovare file in una sottodirectory

Per trovare tutti i file con un'estensione specifica in una sottodirectory, specificare la sottodirectory nel modello:

import glob

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

Utilizzo dei caratteri jolly

I caratteri jolly possono aiutarti a trovare una gamma più ampia di file. Ad esempio, per trovare tutti i file di testo che iniziano con "report":

import glob

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

Trovare file con più estensioni

È anche possibile utilizzare glob per trovare file con più estensioni utilizzando un modello che include più corrispondenze con caratteri jolly:

import glob

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

Utilizzo avanzato

Oltre ai pattern semplici, il modulo glob supporta pattern più complessi. Ad esempio, puoi usare pattern come ** per cercare ricorsivamente nelle directory.

Ricerca ricorsiva

Per cercare file in modo ricorsivo in tutte le sottodirectory, utilizzare il modello ** insieme all'argomento recursive=True:

import glob

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

Conclusione

Il modulo glob è uno strumento essenziale per la gestione dei file in Python, che consente di cercare file utilizzando pattern con facilità. Sia che tu stia lavorando con tipi di file specifici, cercando in directory o eseguendo ricerche complesse, glob fornisce una soluzione semplice ed efficace.