那就祝我们爬不同的山,还能回到同一条路上,不是时时见面,但是时时惦记之人
—— 24.11.13
递归
1.什么是递归
递归在编程中是一种非常重要的算法
递归:即方法(函数)自己调用自己的一种特殊编程写法
函数调用自己,即称之为递归调用
2.递归需要注意什么?
① 注意退出的条件,否则容易变成无限递归
② 注意返回值的传递,确保从最内层,层层传递到最外层
3.os模块的3个方法
os.listdir 列出指定目录下的内容
os.path.isdir 判断给定路径是否是文件夹,是返回True,否则返回False
os.path.exists 判断给定路径是否存在,存在返回True,否则返回False
4.案例 —— 递归查找文件
最典型的递归场景为找出一个文件夹中全部的文件。
如图,在文件夹内,有如下嵌套结构和所属的文件,可以通过递归编程的形式完成
文件夹:
一
——切
——都
——会
——好
——的
——信.txt
——相.txt
——直.txt
——一.txt
我.txt
'''
演示Python递归操作
需求:通过递归,找出一个指定文件夹内的全部文件
思路:写一个函数,列出文件夹内的全部内容,如果是文件就收集到list如果是文件夹,就递归调用自己,再次判断。
'''
import os'''os.listdir 列出文件夹中所有文件os.path.isdir 判断路径是否是文件夹os.path.exists 判断路径是否存在
'''def get_files_recursion_from_dir(path):'''从指定的文件夹中使用递归方式,获取全部的文件列表:param path:倍判断的文件夹:return:list 包含全部的文件,如果目录不存在或者无文件就返回一个空list'''file_list = []if os.path.exists(path):for file in os.listdir(path):new_path = path + "/" + fileif os.path.isdir(new_path):file_list += get_files_recursion_from_dir(new_path)else:file_list.append(new_path)else:print("你输入的路径有误,文件不存在")return []return file_listif __name__ == '__main__':print(get_files_recursion_from_dir("E:\python.learning\一"))