import os
def cir_dir(dirs, all_files=[]):
if isinstance(dirs,str):#在一开始把函数调用时输入路径字符串转换为列表
dirs = [dirs]
for i in dirs:#遍历文件夹路径的容器
if os.path.isdir(i):
os.chdir(i)#改变默认路径
current_list = os.listdir()#获取当前路径下的文件夹和文件
files = filter(os.path.isfile, current_list)#滤出文件
files = map(lambda x: os.path.join(os.getcwd(), x), files)#拼接文件绝对路径
all_files.extend(list(files))#文件放入容器中
dirs = filter(os.path.isdir, current_list)#滤出文件夹
dirs = map(lambda x: os.path.join(os.getcwd(), x), dirs)#拼接文件夹绝对路径
cir_dir(list(dirs), all_files)#递归
else:
all_files.append(i)
return all_files
files = cir_dir('/')
print(files)
网友评论