目录
一.什么是递归
二.案例
递归找文件
步骤
os模块中的三个方法
演示
最终代码
三.总结
一.什么是递归
递归在编程中是一种非常重要的算法
递归:即方法(函数)自己调用自己的一种特殊编程写法
如:
函数调用自己,即称之为递归调用。
二.案例
递归找文件
如图,在D:/test文件夹内,有如下嵌套结构和所属的文件,可以通过递归编程的形式完成
步骤
os模块中的三个方法
- os.listdir() #列出路径下的内容
- os.path.isdir() #判断该路径是不是文件夹
- os.path.exists() #判断该路径是否存在
演示
import os
#列出该路径的内容
print(os.listdir("D:/test"))
#判断指定路径是不是文件夹
print(os.path.isdir("D:/test"))
#判断指定路径是否存在
print(os.path.exists("D:/test"))
结果是
最终代码
import os
def get_wenjian(path):
jiegou = []
if os.path.exists(path):#判断路径是否存在,这里是路径存在
for i in os.listdir(path):
#print(i) 这一语句的输出结果是path路径下的文件名
new_path=path+'/'+i
if os.path.isdir(new_path):#判断该路径是不是文件夹,这里是文件夹
jiegou += get_wenjian(new_path)
else:#这里不是文件夹,而是普通文件
jiegou.append(i)
else:#这里是路径不存在
print(f"该路径{path}不存在")
return []
return jiegou
result=get_wenjian("D:/test")
print(result)
for i in result:
print(i)
结果是
三.总结
1.什么是递归
在满足条件的情况下,函数自己调用自己的一种特殊编程技巧
2.递归需要注意什么?
- 注意退出的条件,否则容易变成无限递归
- 注意返回值的传递,确保从最内层,层层传递到最外层
3.os模块的3个方法
- os.listdir,列出指定目录下的内容
- os.path.isdir,判断给定路径是否是文件夹,是返回True,否返回False
- os.path.exists,判断给定路径是否存在,存在返回True,否则返回False