在Python中,如何查找目录下的所有文件,包括子目录中的文件?

pyt*_*gin 4 python file list

是否有内置函数来查找特定目录下的所有文件,包括子目录下的文件?我试过这段代码,但没有工作......可能逻辑本身就错了......

def fun(mydir):
    lis=glob.glob(mydir)
    length=len(lis)
    l,i=0,0
    if len(lis):
        while(l+i<length):
            if os.path.isfile(lis[i]):
                final.append(lis[i])
                lis.pop(i)
                l=l+1
                i=i+1
            else:
                i=i+1
            print final
        fun(lis)
    else:
        print final
Run Code Online (Sandbox Code Playgroud)

Sil*_*ost 12

没有内置函数,但使用os.walk它很简单来构造它:

import os
def recursive_file_gen(mydir):
    for root, dirs, files in os.walk(mydir):
        for file in files:
            yield os.path.join(root, file)
Run Code Online (Sandbox Code Playgroud)

ETA:os.walk函数递归遍历目录树; 该recursive_file_gen函数是一个生成器(使用yield关键字生成下一个文件).要获得结果列表:

list(recursive_file_gen(mydir))
Run Code Online (Sandbox Code Playgroud)