python获取某目录下(含子目录)所有文件名称


目的:获得某目录下(含子目录)的所有文件的名称。os.listdir函数只能列举当前目录下的文件名称。所以参考写了一个递归函数如下(注意因为是递归函数,所以这个flist 的变量需要在定义的子函数之外。):

import os
flist = []
def getFlist(path):
    global flist
    lsdir = os.listdir(path)
    dirs = [i for i in lsdir if os.path.isdir(os.path.join(path, i))]
    if dirs:
        for i in dirs:
            getFlist(os.path.join(path, i))
    files = [i for i in lsdir if os.path.isfile(os.path.join(path, i))]
    for file in files:
        flist.append(file)
    return flist
resDir = 'res'
flist = getFlist(path)

还有另外一个更为简单的方法,就是使用os.walk函数,代码如下:

import os
def getFlist(path):
    for root, dirs, files in os.walk(file_dir):
        print('root_dir:', root)
        print('sub_dirs:', dirs)
        print('files:', files)
    return files
resDir = 'res'
flist = getFlist(resDir)

致谢:python递归列出目录及其子目录下所有文件
TreeSir


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM