logo

Python: elenca i file in una directory

A volte, mentre si lavora con i file in Python, sorge il problema su come inserire tutti i file in una directory. In questo articolo tratteremo diversi metodi di come elencare tutti i nomi di file in una directory in Pitone.

L'esecuzione di operazioni sui file è un'abilità indispensabile per i programmatori. Imparare le operazioni sui file usando Python aiuta a gestire i file, integrare i file con i tuoi programmi, costruire programmi nel mondo reale, ecc. Tratteremo il concetto più fondamentale di elencare tutti i file presenti in una directory specifica.



Tratteremo due moduli e le rispettive funzioni per questo tutorial sull'elenco dei nomi e dei dettagli dei file in una directory.

Cos'è una directory in Python?

Una directory, a volte nota come cartella, è una struttura organizzativa unitaria nel file system di un computer per archiviare e individuare file o più cartelle. Python ora supporta diverse API per elencare il contenuto della directory. Ad esempio, possiamo utilizzare le funzioni Path.iterdir, os.scandir, os.walk, Path.rglob o os.listdir.

Elenco in uso: fidanzata



File in una directory

Come elencare i file in una directory in Python

Esistono diversi modi per elencare tutti i file in una directory. In questo articolo discuteremo dei moduli seguenti e delle loro funzioni per recuperare l'elenco dei file in una directory. Tratteremo un totale di 5 modi con esempi per controllare l'elenco dei file in una directory.

  1. Utilizzando Modulo del sistema operativo
  2. Utilizzando Modulo glob

Elenca i file in una directory utilizzando il modulo Os in Python

Possiamo usare questi 3 metodi del Modulo del sistema operativo , per ottenere un elenco di file in una directory.



  • os.listdir() Metodo
  • os.walk() Metodo
  • os.scandir() Metodo

Utilizzando il metodo os.listdir() per ottenere l'elenco dei file

os.listdir() Il metodo ottiene l'elenco di tutti i file e le directory in una directory specificata. Per impostazione predefinita, è la directory corrente. Oltre il primo livello di cartelle, os.listdir() non restituisce alcun file o cartella.

Sintassi : os.listdir(percorso)

Parametri :

  • Sentiero : percorso della directory

Tipo di reso : restituisce un elenco di tutti i file e le directory nel percorso specificato

Esempio 1: ottenere un elenco di tutti i file in una directory

In questo esempio, il modulo os viene importato per interagire con il sistema operativo. La funzione listdir viene utilizzata per ottenere un elenco di tutti i file e le directory nel percorso specificato (C://Users//Vanshi//Desktop//gfg). Il risultato viene quindi stampato, visualizzando i nomi dei file e delle directory presenti nella posizione specificata.

Python3




# import OS module> import> os> # Get the list of all files and directories> path>=> ' C://Users//Vanshi//Desktop//gfg '> dir_list>=> os.listdir(path)> print>(>'Files and directories in ''>, path,>'' :'>)> # prints all files> print>(dir_list)>

archivio esperto

>

>

Produzione:

Esempio 2: ottieni tutti i file e nessuna cartella

In questo esempio, il programma Python richiede all'utente il percorso di una cartella ed elenca e stampa i file in quella directory, utilizzando il modulo os per l'interazione con la directory e filtrando i file dall'elenco ottenuto.

Python3




import> os> print>(>'Python Program to print list the files in a directory.'>)> Direc>=> input>(r>'Enter the path of the folder: '>)> print>(f>'Files in the directory: {Direc}'>)> files>=> os.listdir(Direc)> # Filtering only the files.> files>=> [f>for> f>in> files>if> os.path.isfile(Direc>+>'/'>+>f)]> print>(>*>files, sep>=>' '>)>

stringa a numeri interi

>

>

Esempio 3: ottieni solo file '.txt' dalla directory

In questo esempio, lo script Python utilizza il modulo os per scorrere i file nella directory corrente. Stampa selettivamente solo i nomi dei file che terminano con .txt, elencando di fatto i file di testo presenti nella directory.

Python3




# import OS> import> os> for> x>in> os.listdir():> >if> x.endswith(>'.txt'>):> ># Prints only text file present in My Folder> >print>(x)>

>

>

Produzione:

Utilizzo del metodo os.walk() per accedere ai file in un albero di directory

Sistema operativo.walk() genera nomi di file in un albero di directory. Questa funzione restituisce un elenco di file in una struttura ad albero. Il metodo scorre tutte le directory in un albero.

Sintassi: os.walk(top, topdown, onerror, followlinks )

parametri:

  • superiore: È la directory principale da cui si desidera recuperare i nomi dei file e delle cartelle componenti.
  • dall'alto al basso: Specifica che le directory devono essere scansionate dall'alto verso il basso quando impostato su True. Se questo parametro è False, le directory verranno esaminate dall'alto verso il basso.
  • un errore: Fornisce un gestore di errori se viene riscontrato un errore
  • seguire i link : se impostato su True, visita le cartelle a cui fanno riferimento i collegamenti di sistema

Ritorno: restituisce il nome di ogni file e cartella all'interno di una directory e di ciascuna delle sue sottodirectory.

Esempio: ottieni solo file '.txt' in una directory

In questo esempio, lo script Python utilizza il modulo os per esplorare i file nella directory specificata (C://Users//Vanshi//Desktop//gfg) e nelle sue sottodirectory. Identifica e stampa i nomi dei file con estensione .txt, popolando la variabile di lista con i file di testo desiderati.

Python3

conversione di int in stringa in Java




# import OS module> import> os> # This is my path> path>=> ' C://Users//Vanshi//Desktop//gfg '> # to store files in a list> list> => []> # dirs=directories> for> (root, dirs,>file>)>in> os.walk(path):> >for> f>in> file>:> >if> '.txt'> in> f:> >print>(f)>

>

>

Produzione:

Utilizzo del metodo os.scandir() per elencare i file in una directory

os.scandir() è una versione efficiente della funzione os.listdir(). Successivamente è stato rilasciato da Python ed è supportato per Python 3.5 e versioni successive.

Sintassi: os.scandir(percorso)

Parametro:

  • Sentiero- Percorso della directory.

Tipo di reso: restituisce un iteratore dell'oggetto os.DirEntry.

Esempio: elenca tutti i file e le directory in una directory.

In questo esempio, lo script Python utilizza il modulo os per elencare file e directory nel percorso specificato (C://Users//Vanshi//Desktop//gfg). Utilizza os.scandir() per ottenere un iteratore di oggetti os.DirEntry che rappresentano le voci nella directory.

Python3




la stringa sostituisce tutto Java
# import OS module> import> os> # This is my path> path>=> ' C://Users//Vanshi//Desktop//gfg '> # Scan the directory and get> # an iterator of os.DirEntry objects> # corresponding to entries in it> # using os.scandir() method> obj>=> os.scandir()> # List all files and directories in the specified path> print>(>'Files and Directories in '% s':'> %> path)> for> entry>in> obj:> >if> entry.is_dir()>or> entry.is_file():> >print>(entry.name)>

>

>

Produzione:

Elenca i file in una directory utilizzando il modulo glob in Python

IL glob modulo recupera i nomi di file/percorsi che corrispondono a un modello specificato. Di seguito sono riportati i modi in cui possiamo elencare i file in una directory utilizzando il modulo glob:

  • globo() Metodo
  • iglob() metodo

Utilizzando il metodo glob() per ottenere tutti i file in una directory

Con glob , possiamo usare i caratteri jolly (*, ?, [intervalli]) per rendere il recupero del percorso più semplice e conveniente.

Sintassi: glob.glob(percorso, *, ricorsivo=False)

parametri:

  • nome del percorso : il percorso della directory o il modello da abbinare.
  • ricorsivo (Facoltativo): un parametro booleano (il valore predefinito è impostato su Falso ) che indica se la ricerca deve essere ricorsiva, cioè se deve includere sottodirectory.

Ritorna:

  • Elenco dei percorsi di file corrispondenti

Esempio: corrispondenza e stampa di file Python utilizzando il metodo glob()

Python3




import> glob> # This is my path> path>=> 'C:UsersVanshiDesktopgfg'> # Using '*' pattern> print>(>' Named with wildcard *:'>)> for> files>in> glob.glob(path>+> '*'>):> >print>(files)> # Using '?' pattern> print>(>' Named with wildcard ?:'>)> for> files>in> glob.glob(path>+> '?.txt'>):> >print>(files)> # Using [0-9] pattern> print>(>' Named with wildcard ranges:'>)> for> files>in> glob.glob(path>+> '/*[0-9].*'>):> >print>(files)>

>

>

Produzione:

int alla conversione di stringhe in Java

Utilizzo del metodo iglob() per elencare i file in una directory

iglob() Il metodo può essere utilizzato per stampare i nomi dei file in modo ricorsivo se il parametro ricorsivo è impostato su True. Viene utilizzato per directory di grandi dimensioni poiché è più efficiente del metodo glob().

Sintassi: glob.iglob(percorso, *, ricorsivo=False)

Parametro:

  • nome percorso = Percorso della directory.
  • ricorsivo (facoltativo)= Un parametro booleano (il valore predefinito è impostato su Falso ) che indica se la ricerca deve essere ricorsiva, cioè se deve includere sottodirectory.

Ritorna: Iteratore di percorsi di file corrispondenti

Esempio: stampa i percorsi che corrispondono al modello specificato in una directory.

In questo esempio, lo script Python utilizza il modulo glob per trovare e stampare percorsi corrispondenti al modello specificato (C:UsersVanshiDesktopgfg***.txt). Utilizza glob.iglob() per restituire un iteratore, che viene quindi utilizzato per stampare i percorsi di tutti i file di testo presenti nella directory specificata e nelle sue sottodirectory.

Python3




import> glob> # This is my path> path>=> 'C:UsersVanshiDesktopgfg***.txt'> # It returns an iterator which will> # be printed simultaneously.> print>(>' Using glob.iglob()'>)> # Prints all types of txt files present in a Path> for> file> in> glob.iglob(path, recursive>=>True>):> >print>(>file>)>

>

>

Produzione:

Questi sono i 5 modi che puoi utilizzare per ottenere dettagli su file e directory in una directory. Python ha fornito più metodi integrati che puoi utilizzare per conoscere i file presenti in una directory. Questo tutorial ha mostrato metodi semplici con esempi per capire come ottenere elenchi di file con il modulo os e il modulo glob.

Letture simili:

  • Elenca i file nella directory con estensione
  • Elenca tutti i file di un certo tipo in una directory usando Python
  • Elencare directory e file in Python
  • Ottieni l'elenco dei file nella directory con dimensione
  • Gestione dei file in Python