Método scandir del módulo os

El método scandir recorre los archivos y subcarpetas que se encuentran en una carpeta. En el parámetro del método se establece la ruta a la carpeta. El método devuelve un objeto os.DirEntry.

Sintaxis

pythonimport os

os.scandir(ruta al directorio)

Ejemplo

Vamos a conocer la estructura de nuestro directorio:

pythonimport os

print(os.scandir('dir'))

Como resultado de ejecutar el código obtendremos un objeto os.DirEntry:

python<nt.ScandirIterator object at 0x000001478707FF00>

Ejemplo

Ahora vamos a recorrer el objeto obtenido con un ciclo. Para liberar los recursos del sistema, después de completar el ciclo, es necesario cerrar el recorrido usando el método scandir:

pythonimport os

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

Resultado del código ejecutado:

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

Ejemplo

También podemos mostrar solo los nombres de los archivos, aplicando al objeto obtenido el atributo name:

pythonimport os

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

Resultado del código ejecutado:

pythondir1
file1.txt
file2.txt

Véase también

  • objeto DirEntry del módulo os,
    que contiene archivos y subcarpetas iterables
  • método getcwd del módulo os,
    que devuelve el directorio de trabajo actual
  • método makedirs del módulo os,
    que crea un directorio
  • método rmtree del módulo shutil,
    que elimina recursivamente una carpeta
  • método copytree del módulo shutil,
    que copia recursivamente una carpeta
  • método path.join del módulo os,
    que combina rutas