Como faço para listar todos os arquivos de um diretório?

Como posso listar todos os arquivos de um diretório em Python e adicioná-los a uma lista?

os.listdir() lhe dará tudo que's em um diretório - arquivos e diretórios.

Se você quiser arquivos just, você pode filtrar isso utilizando os.path:

from os import listdir
from os.path import isfile, join
onlyfiles = [f for f in listdir(mypath) if isfile(join(mypath, f))]

ou você pode utilizar os.walk() que renderá duas listas para cada diretório que ele visitar - dividindo em arquivos e dirs para você. Se você quiser apenas o diretório superior, você pode apenas quebrar a primeira vez que ele render

from os import walk

f = []
for (dirpath, dirnames, filenames) in walk(mypath):
    f.extend(filenames)
    break
Comentários (6)

Eu prefiro utilizar o módulo glob, pois ele faz correspondência de padrões e expansão.

import glob
print(glob.glob("/home/adam/*.txt"))

Ele irá retornar uma lista com os arquivos consultados:

['/home/adam/file1.txt', '/home/adam/file2.txt', .... ]
Comentários (4)
import os
os.listdir("somedirectory")

irá retornar uma lista de todos os arquivos e diretórios em "somedirectory".

Comentários (3)