python 递归遍历目录下的所有文件

递归函数: 递归,就是在运行的过程中调用自己。程序调用自身的编程技巧称为递归( recursion)。递归作为一种算法在程序设计语言中广泛应用。 (百度百科)

1、阶乘的定义,写一个经典递归算法阶乘。

n! = 1×2×3×...×(n-1)×n

0!=1,n!=(n-1)!×n

def factorial(n):
    if(n<=1):
        return 1
    else:
        return factorial(n-1) * n

2、斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(≥ 2,∈ N*)

def fibonacci(n):
    if n = 0:
        return 0
    elif n = 1:
        return 1
    else:
        return fibonacci(n-1) + fibonacci(n-2)

实操:python中最有用的就是 需要进行对文件批量处理,而且文件又在不同的目录,可以使用递归方法将所有文件的路径遍历利出来后续进行批量修改。

import os


def show_files(base_path, all_files=[]):
    """
    遍历当前目录所有py文件及文件夹
    :param path:
    :param all_files:
    :return:
    """
    file_list = os.listdir(base_path)
    # 准备循环判断每个元素是否是文件夹还是文件,是文件的话,把名称传入list,是文件夹的话,递归
    for file in file_list:
        # 利用os.path.join()方法取得路径全名,并存入cur_path变量,否则每次只能遍历一层目录
        cur_path = os.path.join(base_path, file)
        # 判断是否是文件夹
        if os.path.isdir(cur_path):
            show_files(cur_path, all_files)
        else:
            if not file.endswith('.py'):
                continue
            else:
                all_files.append(cur_path)
    return all_files

你可能感兴趣的:(python基础,python语言,大数据)