how to list all files of a directory in python, and add it to a list?
+3
A:
os.listdir("somedirectory")
will return a list of all the files in somedirectory.
sepp2k
2010-07-08 19:35:33
+2
A:
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 2 lists for each directory it visits - splitting into files and dirs for you. If you only want the top dir you can just break the first time it yields
f = []
for (dirpath, dirname, filenames) in walk(mypath):
f.extend(filenames)
break
And lastly, as that example shows, adding one list to another you can either use .extend() or
>>> q = [1,2,3]
>>> w = [4,5,6]
>>> q = q + w
>>> q
[1,2,3,4,5,6]
personally I prefer .extend()
pycruft
2010-07-08 21:01:11
A:
I prefer using the glob
module, as it does pattern matching and expansion.
import glob
print glob.glob("/home/adam/*.txt")
Will return a list with the queried files:
['/home/adam/file1.txt', '/home/adam/file2.txt', .... ]
adamk
2010-07-09 18:13:37