文中所用文件夹递归请自行下载
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