文中所用文件夹递归请自行下载

下载信息

Admin_Log

Admin_Log
import os


def get_files_recursion_from_dir(path):
    """
    从指定的文件夹中使用递归的方式,获取全部的文件列表
    :param path:被判断的文件夹
    :return:list.包含全部的文件,如果目录不存在或者无文件就返回一个空list
    """
    print(f"当前判断的文件夹是:{path}")
    file_list = []
    if os.path.exists(path):
        for f in os.listdir(path):
            new_path = path + "/" + f
            if os.path.isdir(new_path):
                # 进入到这里,表明这个目录是文件夹不是文件
                file_list += get_files_recursion_from_dir(new_path)
            else:
                file_list.append(new_path)
    else:
        print(f"指定的目录{path}不存在")
        return []

    return file_list

if __name__ == '__main__':
    print(get_files_recursion_from_dir("E:/PycharmProjects/test"))
    运行结果:

    当前判断的文件夹是:E:/PycharmProjects/test
    当前判断的文件夹是:E:/PycharmProjects/test/a
    当前判断的文件夹是:E:/PycharmProjects/test/a/d
    当前判断的文件夹是:E:/PycharmProjects/test/a/d/e
    当前判断的文件夹是:E:/PycharmProjects/test/b
    ['E:/PycharmProjects/test/1.txt', 'E:/PycharmProjects/test/2.txt', 'E:/PycharmProjects/test/3.txt', 'E:/PycharmProjects/test/a/a1.txt', 'E:/PycharmProjects/test/a/a2.txt', 'E:/PycharmProjects/test/a/a3.txt', 'E:/PycharmProjects/test/a/d/e/e1.txt', 'E:/PycharmProjects/test/a/d/e/e2.txt', 'E:/PycharmProjects/test/a/d/e/e3.txt', 'E:/PycharmProjects/test/b/c1.txt', 'E:/PycharmProjects/test/b/c2.txt', 'E:/PycharmProjects/test/b/c3.txt']
    
    进程已结束,退出代码为 0