Come elencare i file in una directory usando Python?

In questo tutorial, stiamo coprendo tutto quello che c’è da sapere su come elencare i file in una directory utilizzando Python.

Python è un linguaggio generico, utilizzato in una varietà di campi come la scienza dei dati, l’apprendimento automatico e persino nello sviluppo Web. Non sembra esserci alcuna restrizione nell’applicazione del linguaggio Python.

Pertanto, sembra abbastanza banale Python può essere utilizzato per elencare file e directory in qualsiasi sistema., Lo scopo di questo articolo è quello di illuminare il lettore sui modi per elencare i file in un sistema utilizzando Python.

Elenca tutti i file in una directory Usando Python

Allo scopo di interagire con le directory in un sistema usando Python, viene utilizzata la libreria os.

1. Usando la libreria ‘ os ‘

Il metodo che stiamo per esercitare per il nostro motivo è listdir(). Come suggerisce il nome, viene utilizzato per elencare gli elementi nelle directory.,

# Importing the os libraryimport os# The path for listing itemspath = '.'# The list of itemsfiles = os.listdir(path)# Loop to print each filename separatelyfor filename in files:print(filename)

Uscita:

game_file.pyhi-lo_pygame.pyJournaldevlist_files1.pyhi_lo_pygame.mp4test.pylist_files.pymy_program.cppa.outcut.cpp

gli utenti Linux possono abbinare facilmente al di sopra di output standard ls comando sul terminale.

Elenca le voci usando il comando ‘ls’

Come possiamo vedere le uscite di ogni metodo corrisponde.

2., Utilizzando il ‘glob’ libreria

glob è per lo più un nome di file di pattern matching libreria, ma può essere utilizzato per elementi di una lista nella directory corrente da:

Uscita:

game_file.pyhi-lo_pygame.pyJournaldevlist_files1.pyhi_lo_pygame.mp4test.pylist_files.pymy_program.cppa.outcut.cpp

Il carattere jolly '*' viene usato per indicare tutti gli elementi della directory corrente. Poiché desideriamo visualizzare gli elementi della directory corrente, dobbiamo disattivare la natura ricorsiva della funzioneglob().

3., Elenca solo i file nella directory corrente

Nei metodi precedenti, il codice python restituiva tutti gli elementi nella directory corrente indipendentemente dalla loro natura. Possiamo estrarre solo i file utilizzando la funzionepath.isfile() all’interno della libreriaos.

Output:

game_file.pyhi-lo_pygame.pylist_files1.pyhi_lo_pygame.mp4test.pylist_files.pymy_program.cppa.outcut.cpp

Nel frammento di codice sopra riportato, la comprensione delle liste viene utilizzata per filtrare solo gli elementi che sono in realtà un file.,

Un’altra cosa fondamentale da notare qui è che il codice sopra non funziona per altre directory poiché la variabile 'f' non è un percorso assoluto, ma un percorso relativo alla directory corrente.

Elenca tutti i file in una directory Ricorsivamente

Per stampare i file all’interno di una directory e delle sue sottodirectory, dobbiamo attraversarli ricorsivamente.

1. Usando la libreria’ os ‘

Con l’aiuto del metodowalk(), possiamo attraversare ciascuna sottodirectory all’interno di una directory una per una.,

Output:

Il os.walk() metodo segue semplicemente ogni sottodirectory ed estrae i file in modo top-down per impostazione predefinita. Ci sono tre gli iteratori utilizzato per passare attraverso l’uscita di os.walk() funzione:

  • path Questa variabile contiene la directory attuale la funzione di osservazione durante una certa iterazione
  • folders Questa variabile è un elenco di directory all’interno del 'path' directory.,
  • files – Un elenco di file all’interno della directory'path'.

Il metodojoin() viene utilizzato per concatenare il nome del file con la sua directory principale, fornendoci il percorso relativo al file.

2. Usando la libreria ‘ glob ‘

Simile alla procedura precedente,glob puoi visitare ricorsivamente ogni directory ed estrarre tutti gli elementi e restituirli.,

Output:

Il simbolo '**' utilizzato insieme alla variabile path indica alla funzione glob() di abbinare i file all’interno di qualsiasi sottodirectory. '*' indica alla funzione di corrispondere a tutti gli elementi all’interno di una directory.

Poiché desideriamo estrarre solo i file nella directory completa, filtriamo i file usando la funzioneisfile() usata prima.

Elenca tutte le sottodirectory All’interno di una Directory

Invece di elencare i file, possiamo elencare tutte le sottodirectory presenti in una directory specifica.,

Output:

./Documents/Journaldev

La differenza minore tra l’elenco di file e directory è la selezione di iteratore durante il processo dios.walk() funzione. Per i file, iteriamo sulla variabile file. Qui, eseguiamo il ciclo sulla variabile cartelle.

Elenca i file in una directory con Percorso assoluto

Una volta che sappiamo come elencare i file in una directory, quindi visualizzare il percorso assoluto è un pezzo di torta. Il metodoabspath() ci fornisce il percorso assoluto per un file.,

Output:

Una cosa da notare qui è cheabspath() deve essere fornito con il percorso relativo del file e questo è lo scopo della funzionejoin().

Elenca i file in una directory abbinando i pattern

Esistono diversi modi per filtrare i nomi dei file corrispondenti a un particolare pattern. Passiamo attraverso ciascuno di essi uno per uno.

1. Utilizzando la libreria’ fnmatch ‘

Come suggerisce il nome,fnmatch è una libreria di corrispondenza dei nomi dei file., Usandofnmatch con le nostre librerie di estrazione dei nomi di file standard, possiamo filtrare quei file che corrispondono a un modello specifico.

Output:

List of files containing "file" in them./Documents/game_file.py./Documents/list_files1.py./Documents/list_files.py

La funzionefnmatch() accetta due parametri, il nome del file seguito dal modello da abbinare. Nel codice sopra, stiamo guardando tutti i file contenenti la parola file in essi.

2. Usando la libreria ‘ glob ‘

Come abbiamo accennato prima,glob's lo scopo principale è la corrispondenza del modello del nome file.,

Output:

./Documents/list_files1.py

Il modello sopra corrispondente espressione regolare '**/**.*' può essere spiegato come:

3. L’utilizzo della libreria’ pathlib ‘

pathlib segue un modo orientato agli oggetti di interagire con il filesystem. La funzionerglob() all’interno della libreria può essere utilizzata per estrarre ricorsivamente l’elenco di file attraverso un determinato oggetto Path.

Questi elenchi di file possono essere filtrati utilizzando un pattern all’interno della funzionerglob().,

Output:

Documents/my_program.cppDocuments/Journaldev/mastermind.py

Lo snippet di codice precedente viene utilizzato per elencare tutti i file che iniziano con la lettera'm'.

Elencare i file in una directory con un’estensione specifica

Elencare i file con un’estensione specifica in Python è in qualche modo simile al pattern matching. A tale scopo, è necessario creare un modello rispetto all’estensione del file.

Output:

La funzionefnmatch()filtra i file che terminano con'.py', ovvero i file python., Se vogliamo estrarre file con estensioni diverse, dobbiamo modificare questa parte del codice. Ad esempio, per recuperare solo file C++, è necessario utilizzare '.cpp'.

Questo riassume i modi per recuperare l’elenco dei file in una directory usando Python.

Conclusione

Ci possono essere diversi modi per risolvere qualsiasi problema a portata di mano, e il più conveniente non è sempre la risposta. Per quanto riguarda questo articolo, un programmatore Python deve essere a conoscenza di ogni modo in cui possiamo elencare i file in una directory.

Share

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *