Questo tutorial fornisce una panoramica del metodo Python glob() del modulo glob. Include diversi esempi per portare chiarezza.
Di solito, i programmatori hanno bisogno di attraversare una lista di file in qualche posizione, per lo più con un modello specifico. Il modulo glob di Python ha diverse funzioni che possono aiutare a elencare i file sotto una cartella specificata. Possiamo filtrarli in base alle estensioni, o con una particolare stringa come parte del nome del file.
Tutti i metodi del modulo Glob seguono il meccanismo e le regole del pattern matching in stile Unix. Tuttavia, non permette l’espansione della tilde (~) e delle variabili d’ambiente.
Metodi di Python Glob()
Oggi, discuteremo tre funzioni principali del modulo Glob.
glob(file_pattern, recursive = False)
Recupera la lista dei file che corrispondono al pattern specificato nel parametro file_pattern.
Il file_pattern può essere un percorso assoluto o relativo. Può anche contenere caratteri jolly come i simboli “*” o “?”.
Il parametro ricorsivo è disattivato (Falso) per default. Quando è True, cerca ricorsivamente i file sotto tutte le sottodirectory della directory corrente.
Controlliamo ora alcuni esempi:
Controlla la directory corrente per i file di script Python
Il codice seguente controlla solo i file .py nella directory corrente.
>>> import glob>>> for py in glob.glob("*.py"):... print(py)...copy_file1.pycopy_file2.pydecimal_sample.py
Un altro codice di esempio – Controlla i file .py nella directory corrente e nelle sottodirectory.
>>> import glob>>> for py in glob.glob("*.py"):... print(py)...copy_file1.pycopy_file2.pydecimal_sample.pytest_num.pytest_python_in_with_if.pytest_scope.py
Lista dei file con un modello
Possiamo fornire un modello di percorso includendo alcuni caratteri jolly come ? o intervallo numerico. Il codice seguente elenca tutti i file il cui nome inizia con “test” seguito da un numero.
>>> for py in glob.glob("test.py"):... print(py)...test1.pytest2.py
Controlliamo un altro esempio usando il punto interrogativo nel pattern.
>>> for py in glob.glob("?????.py"):... print(py)...quiz1.pytest1.pytest2.py
L’istruzione for loop di cui sopra ha stampato tutti i file .py con cinque lettere.
L’istruzione seguente stamperebbe i nomi delle cartelle ricorsivamente nella directory di lavoro corrente.
>>> glob.glob('selenium/**/', recursive=True)
metodoiglob() | Python Glob
Questo metodo crea un oggetto generatore Python che può essere usato per elencare i file sotto una data directory. Puoi chiamare la funzione next() per stampare i nomi dei file.
Controlla il codice di esempio qui sotto:
>>> gen = glob.iglob("*.py")>>> type(gen)<class 'generator'>>>> for py in gen:... print(py)...copy_file1.pycopy_file2.pydecimal_sample.pyfind_seed.pyfrozen_set.py
escape() method
Consente l’escape della sequenza di caratteri data. Puoi trovarlo utile per localizzare i file con certi caratteri nei loro nomi.
Guarda gli esempi seguenti:
>>> char_seq = "-_#">>> for spcl_char in char_seq:... esc_set = "*" + glob.escape(spcl_char) + "*" + ".py"... for py in (glob.glob(esc_set)):... print(py)...python quiz-classes-2.pypython-class.pypython-lists.pypython-random#num.pypython-set.pypython-tuples.pypython-while_loop.pycopy_file#2.pydecimal_sample.pyfind_seed.pyfrozen-set.py
Da controllare – Python per elencare tutti i file in una directory