Codice sorgente: Lib/glob.py

Il modulo glob trova tutti i nomi di percorso che corrispondono ad un pattern specificato secondo le regole usate dalla shell Unix, sebbene i risultati siano restituiti in ordine arbitrario. Non viene fatta alcuna espansione di tilde, ma *, ?, e gli intervalli di caratteri espressi con saranno correttamente abbinati. Questo viene fatto usando le funzioni os.scandir() e fnmatch.fnmatch() di concerto, e non invocando effettivamente un subshell. Si noti che, a differenza di fnmatch.fnmatch(), glob tratta i nomi di file che iniziano con un punto (.) come casi speciali (per la tilde e l’espansione delle variabili di shell, usate os.path.expanduser() eos.path.expandvars().)

Per una corrispondenza letterale, avvolgi i meta-caratteri tra parentesi; per esempio, '' corrisponde al carattere '?'.

Vedi anche

Il modulo pathlib offre oggetti percorso di alto livello.

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

Ritorna una lista possibilmente vuota di nomi di percorsi che corrispondono a pathname, che deve essere una stringa contenente una specifica di percorso. pathname può essere assoluto (come /usr/src/Python-1.5/Makefile) o relativo (come../../Tools/*/*.gif), e può contenere caratteri jolly stile shell. I brokensymlink sono inclusi nei risultati (come nella shell). Se i risultati sono ordinati o meno dipende dal file system. Se un file che soddisfa le condizioni viene rimosso o aggiunto durante la chiamata di questa funzione, non è specificato se il nome del percorso di quel file debba essere incluso.

Se ricorsivo è vero, lo schema “**” corrisponderà a qualsiasi file e a zero o più directory, sottodirectory e collegamenti simbolici alle directory. Se lo schema è seguito da un os.sep o os.altsep allora i file non corrispondono.

Lancia un evento di auditing glob.glob con argomenti pathname, recursive.

Nota

L’uso dello schema “**” in grandi alberi di directory può richiedere una quantità di tempo eccessiva.

Cambiato nella versione 3.5: supporto per globi ricorsivi usando “**“.

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

Ritorna un iteratore che produce gli stessi valori di glob()senza memorizzarli tutti contemporaneamente.

Lancia un evento di revisione glob.glob con argomenti pathname, recursive.

glob.escape(pathname)¶

Esclude tutti i caratteri speciali ('?', '*' e '.txt'.

Nuovo nella versione 3.4.

Per esempio, considerate una directory contenente i seguenti file:1.gif, 2.txt, card.gif e una sottodirectory subche contiene solo il file 3.txt. glob() produrrà i seguenti risultati. Notate come qualsiasi componente iniziale del percorso viene conservato.

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

Se la directory contiene file che iniziano con . non saranno abbinati per default. Per esempio, considera una directory contenente card.gif e.card.gif:

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

Vedi anche

Modulo fnmatch

Espansione dei nomi di file (non dei percorsi) in stile shell

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.