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.