Python Glob ricorsivo

Python Glob ricorsivo
Glob è una parola generale che descrive molte strategie che possono essere utilizzate per abbinare determinati schemi in conformità con le linee guida associate al guscio unix. Sia Linux che Unix hanno sistemi operativi e shell che supportano Glob, ed entrambi hanno librerie di sistema che supportano la funzione Glob ().

Il modulo Glob in Python può essere utilizzato per ottenere i file e i pathnames che corrispondono a uno schema specificato. Le regole del modello per Glob aderiscono allo standard che è stabilito da Unix per l'espansione del percorso. Oltre a ciò, è previsto, per benchmark, che sarà più rapido degli approcci esistenti per abbinare i nomi dei percorsi nelle directory. Oltre alla ricerca di una stringa esatta, potremmo impiegare i caratteri jolly (**,?, [gamme]) con un globo per rendere il processo di recupero del percorso più semplice e intuitivo.

Leggendo il seguente articolo, otterrai una panoramica della funzione Glob (), che è uno strumento utile per individuare i file in modo ricorsivo tramite il codice Python.

La sintassi per il metodo Glob () è:

glob.glob (path_name, *, ricorsive = false)

Nota: il valore ricorsivo è impostato su false per impostazione predefinita.

Esempio 1: Utilizzo del metodo ricorsivo Glob in un programma Python per stampare il nome e la fonte dei primi 10 file nella directory data

In questo esempio, utilizzeremo l'intervallo di wild card [0-9] per individuare tutti i file i cui nomi contengono un numero o qualsiasi cifra prima dell'estensione. La gamma di caratteri [0-9] corrisponde a qualsiasi singola cifra. Il cruscotto rappresenta un ambito ininterrotto di caratteri consecutivi disposti in base al codice del personaggio per ogni lettera/cifra. Il carattere [0123456789] è un altro modo per scrivere lo stesso valore di intervallo.

Nel codice fornito, per prima cosa importiamo il modulo Glob per utilizzare i suoi metodi. Nella riga successiva, un loop è attraversato nella cartella che specificata con Glob con il wild card, [0-9]. Dal momento che non abbiamo specificato se il ciclo è ricorsivo o meno, non sarà ricorsivo per impostazione predefinita. Nel ciclo per, stampiamo tutti gli elementi della cartella. Stampa solo i file che hanno una cifra o un numero prima della sua estensione come mostrato nella seguente schermata:

Esempio 2: Utilizzo del metodo ricorsivo Glob per individuare l'origine e il nome di un file menzionato nel parametro e non fornire condizioni alla funzione

Vedremo cosa accade se in questo esempio non vengono utilizzati wild card.

Nel seguente codice, il modulo Glob viene importato per primo. Nella riga successiva, un loop è attraversato lungo il globo con un percorso di file. Si prega di notare che il percorso è del file in questo caso, a differenza della cartella nel caso precedente. Ciò significa che c'è solo un elemento da abbinare al globo. E come possiamo vedere, non viene utilizzato alcun jolly; Non ha nulla con cui confrontare. Di conseguenza, restituisce il file specificato che può essere visto nel terminale di output nella seguente screenshot:

Esempio 3: Utilizzo del metodo ricorsivo Glob in un programma Python per stampare il nome e la fonte di tutti i file presenti nella directory data

In questo esempio, useremo l'asterisco "*" wild card e vedremo cosa restituisce.

Nel codice fornito, il primo modulo Glob viene importato per utilizzare i suoi metodi nel nostro codice. Nella riga successiva, un loop è attraversato in glob con un percorso di cartella specificato di "desktop". Il pattern corrisponde a tutti i pathname (file o directory) nella directory "desktop" ma non si ripresenta ulteriormente poiché l'altro parametro non è stato dato e per impostazione predefinita è non recurso. Stampa tutti gli elementi o i file nella cartella mentre corrisponde a zero caratteri. Questo è mostrato nella seguente screenshot:

Esempio 4: Utilizzo del metodo ricorsivo Glob per individuare l'origine e il nome di un file menzionato nel parametro e fornire una condizione nella funzione insieme ad esso

Un altro jolly supportato da Glob è "?". In quella posizione, questo corrisponde a qualsiasi singolo elemento nel nome.

In questo esempio, il modulo Glob viene importato per primo. Nella riga successiva, un loop è attraversato in Glob con un percorso del file per abbinare qualsiasi nome di file nella cartella desktop che inizia con "casuale", contiene un carattere aggiuntivo di qualsiasi tipo sia che si tratti di testo o cifra o carattere e conclude con ".testo". Poiché nessun file ha soddisfatto questi criteri, nulla viene visualizzato nel terminale di output come mostrato nella seguente screenshot:

Esempio 5: Utilizzo del metodo ricorsivo Glob in un programma Python per stampare il nome e la fonte di tutti i file presenti nella directory data con un doppio asterisco nel percorso insieme al parametro ricorsivo set come vero

In questo esempio, impareremo un altro uso jolly con Glob. È un doppio asterisco "**". Ciò consente al programma di abbinare in modo ricorsivo zero o più sottodirectory della directory corrente.

Nel primo passaggio, il modulo Glob viene importato. Quindi, il "glob.Il metodo Glob "è richiesto per un percorso della cartella con un doppio asterisco" ** "wild card e ricorsivo = true. Ciò consente al programma di abbinare in modo ricorsivo zero o più sottodirectory della directory corrente e salvare l'elenco dei file nella variabile denominata "F". Nella riga successiva, un ciclo per loop viene attraversato lungo l'elenco dei file in "F" e viene visualizzato nel terminale di output utilizzando il comando di stampa come mostrato nella seguente schermata:

Esempio 6: Utilizzo della funzione ricorsiva a Glob Iglob in un programma Python per scoprire il nome e la fonte di tutti i file presenti nella directory data con un doppio asterisco nel percorso insieme al parametro ricorsivo set come vero

In questo caso, eseguiremo lo identico trucco che abbiamo fatto in quello precedente. Ma piuttosto che usare Glob.Glob, useremo il glob.iglob (). La sintassi per “Glob.iglob ”è lo stesso di un glob.GLOB: GLOB.iglob (pathname, ricorsivo = false). Tranne il fatto che produce un iteratore, il che significa che non tutti gli elementi vengono salvati in memoria. Quindi, può essere usato in modo molto più efficiente.

Nel primo passaggio, il modulo Glob viene importato. Quindi, il "glob.Il metodo Glob "è richiesto per un percorso della cartella con un doppio asterisco" ** "wild card e ricorsivo = true. Ciò consente al programma di abbinare in modo ricorsivo zero o più sottodirectory della directory corrente. Questa volta, nessun elenco viene salvato in nessuna variabile. Nella riga successiva, il loop è attraversato lungo il percorso IGLob con un puntatore e viene visualizzato nel terminale di uscita usando il comando di stampa in ciascun loop come mostrato nella seguente schermata:

Conclusione

Glob () e iglob () sono due funzioni importanti che iterano attraverso il percorso linearmente o in modo ricorsivo in base al valore del secondo parametro, che potrebbe essere vero o falso. Python ha reso questo molto più efficace come metodo, rendendolo molto più prezioso di qualsiasi altro approccio manuale. Spero che questo articolo ti abbia aiutato a capire come queste funzioni funzionano con i loro diversi jolly e come rende la nostra vita facile.