¿Cómo puedo listar todos los archivos de un directorio?

¿Cómo puedo listar todos los archivos de un directorio en Python y añadirlos a una lista?

os.listdir() obtendrá todo lo que hay en un directorio - archivos y directorios.

Si sólo quieres archivos, puedes filtrarlos usando os.path:

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

o puedes usar os.walk() que te dará dos listas por cada directorio que visite - dividiendo en archivos y dirs para ti. Si sólo quieres el directorio superior puedes romperlo la primera vez que arroje

from os import walk

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

Prefiero usar el módulo glob, ya que hace la coincidencia de patrones y la expansión.

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

Devolverá una lista con los archivos consultados:

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

devolverá una lista de todos los archivos y directorios en "somedirectory".

Comentarios (3)