#如何在Python中列出目录下的所有文件
原问题地址:http://stackoverflow.com/questions/3207219/how-to-list-all-files-of-a-directory-in-python
##问题:
我如何在Python中列出目录下的所有文件并将它们添加到一个列表?
##回答:
使用os.listdir()可以获取目录中的所有内容 —— 文件和子目录。
如果你只想获取文件,你可以使用os.path
进行过滤
from os import listdir
from os.path import isfile, join
onlyfiles = [f for f in listdir(mypath) if isfile(join(mypath, f))]
或者可以使用os.walk()。你所访问的每个目录都将生成两个列表 —— 文件列表和目录列表。如果你想要的只是顶层目录,你可以在目录列表第一次生成的时候就结束它。
from os import walk
f = []
for (dirpath, dirnames, filenames) in walk(mypath):
f.extend(filenames)
break
最后,正如上面这个例子所表明的那样,要把一个列表添加到另一个列表,你可以使用.extend()或
>>> q = [1, 2, 3]
>>> w = [4, 5, 6]
>>> q = q + w
>>> q
[1, 2, 3, 4, 5, 6]
就我个人而言,我更喜欢.extend()