Metodo scandir del modulo os

Il metodo scandir itera su file e sottocartelle presenti in una directory. Nel parametro del metodo specifichiamo il percorso della directory. Il metodo restituisce un oggetto os.DirEntry.

Sintassi

pythonimport os

os.scandir(percorso della directory)

Esempio

Scopriamo la struttura della nostra directory:

pythonimport os

print(os.scandir('dir'))

Come risultato dell'esecuzione del codice otterremo un oggetto os.DirEntry:

python<nt.ScandirIterator object at 0x000001478707FF00>

Esempio

Ora iteriamo sull'oggetto ottenuto con un ciclo. Per liberare le risorse di sistema al termine del ciclo, è necessario chiudere l'iterazione utilizzando il metodo close() sull'oggetto scandir:

pythonimport os

for file in os.scandir('dir'):
  print(file)

os.scandir('dir').close()

Risultato del codice eseguito:

python<DirEntry 'dir1'>
<DirEntry 'file1.txt'>
<DirEntry 'file2.txt'>

Esempio

Possiamo anche stampare solo i nomi dei file, applicando all'oggetto ottenuto l'attributo name:

pythonimport os

for file in os.scandir('dir'):
  print(file.name)

os.scandir('dir').close()

Risultato del codice eseguito:

pythondir1
file1.txt
file2.txt

Vedi anche

  • oggetto DirEntry del modulo os,
    che contiene file e sottocartelle iterabili
  • metodo getcwd del modulo os,
    che restituisce la directory di lavoro corrente
  • metodo makedirs del modulo os,
    che crea una directory
  • metodo rmtree del modulo shutil,
    che elimina ricorsivamente una cartella
  • metodo copytree del modulo shutil,
    che copia ricorsivamente una cartella
  • metodo path.join del modulo os,
    che unisce percorsi