How do I list all files of a directory?

duhhunjonn picture duhhunjonn · Jul 8, 2010 · Viewed 4.9M times · Source

How can I list all files of a directory in Python and add them to a list?

Answer

pycruft picture pycruft · Jul 8, 2010

os.listdir() will get you everything that's in a directory - files and directories.

If you want just files, you could either filter this down using os.path:

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

or you could use os.walk() which will yield two lists for each directory it visits - splitting into files and dirs for you. If you only want the top directory you can break the first time it yields

from os import walk

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