一、递归目录输出所有文件
#导入os模块,os模块提供丰富的文件和目录的处理方法
import os
#listdir方法返回path指定文件夹下的包含的文件或者文件夹名字列表,注意:不能递归查询;返回只有名称,不包含路径
dir_list= os.listdir(待查找的路径)
#递归查询指定目录下所有文件,输出格式:路径/文件名
def output_file(file_dir):
dir_list = os.listdir(file_dir)
#循环获取目录下文件名,并加上路径组成完整文件路径;判断传入的参数是否为文件,决定是否是打印输出还是继续递归查找
for dir_one in dir_list:
#将目录和文件名合并成一个路径
de_path = os.path.join(file_dir, dir_one)
if os.path.isfile(de_path):
print(de_path)
else:
output_file(de_path)
#递归查询指定目录下所有文件,输出格式:文件名
def output_file_basename(file_dir):
dir_list = os.listdir(file_dir)
#循环获取目录下文件名,并加上路径组成完整文件路径;判断传入的参数是否为文件,决定是否是打印输出还是继续递归查找
for dir_one in dir_list:
#将目录和文件名合并成一个路径
de_path = os.path.join(file_dir, dir_one)
if os.path.isfile(de_path):
print(os.path.basename(de_path))
else:
output_file_basename(de_path)
二、输出指定类型文件
如:输出以.robot结尾的文件
# 递归查询指定目录下所有文件,输出格式:文件名
def output_basename_file(file_dir):
dir_list = os.listdir(file_dir)
# 循环获取目录下文件名,并加上路径组成完整文件路径;判断传入的参数是否为文件,决定是否是打印输出还是继续递归查找
for dir_one in dir_list:
# 将目录和文件名合并成一个路径
de_path = os.path.join(file_dir, dir_one)
if os.path.isfile(de_path) and de_path.endswith('.robot'):
print(os.path.basename(de_path))
elif os.path.isfile(de_path):
continue
else:
output_basename_file(de_path)