Método scandir do módulo os

O método scandir itera sobre arquivos e subpastas que estão em uma pasta. No parâmetro do método, definimos o caminho para a pasta. O método retorna um objeto os.DirEntry.

Sintaxe

pythonimport os

os.scandir(caminho para o diretório)

Exemplo

Vamos descobrir a estrutura do nosso diretório:

pythonimport os

print(os.scandir('dir'))

Como resultado da execução do código, obtemos um objeto os.DirEntry:

python<nt.ScandirIterator object at 0x000001478707FF00>

Exemplo

Agora vamos iterar sobre o objeto obtido com um loop. Para liberar os recursos do sistema após a conclusão do loop, é necessário fechar a iteração usando o método scandir:

pythonimport os

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

Resultado do código executado:

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

Exemplo

Também podemos imprimir apenas os nomes dos arquivos, aplicando ao objeto obtido o atributo name:

pythonimport os

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

Resultado do código executado:

pythondir1
file1.txt
file2.txt

Veja também

  • objeto DirEntry do módulo os,
    que contém arquivos e subpastas iteráveis
  • método getcwd do módulo os,
    que retorna o diretório de trabalho atual
  • método makedirs do módulo os,
    que cria um diretório
  • método rmtree do módulo shutil,
    que remove recursivamente uma pasta
  • método copytree do módulo shutil,
    que copia recursivamente uma pasta
  • método path.join do módulo os,
    que une caminhos