Python递归获取指定路径下所有特定类型的文件路径

在做数据整理时,有时需要批量获取指定路径下特定类型的文件绝对路径,Python似乎没有这种依赖库可以直接拿来使用,于是借助内置的 os 模块和递归来实现一个简单的函数,达到获取文件列表的目的。

from os import listdir
from os.path import join, isfile, isdir


def get_file_list(parent_dir, file_type, file_list):
    """
    :param parent_dir: 想要获取文件列表的一级目录
    :param file_type: 想要获取的文件类型(后缀名)
    :param file_list: 将获取到的文件列表存储到该列表中
    :return: 返回获取到的文件列表
    """
    # 列举出当前文件路径下的所有文件名,也可能是文件夹名
    for f in listdir(parent_dir):
        # 将当前路径下的文件名或文件夹名和上一级目录进行连接,进而获取到一个新的路径
        temp_dir = join(parent_dir, f)
        # 判断当前绝对路径的类型如果是一个文件而非文件夹且文件类型为指定的类型,则将该绝对路径添加到 file_list 文件列表中
        if isfile(temp_dir) and temp_dir.endswith(file_type):
            file_list.append(temp_dir)
        # 如果当前绝对路径的类型是一个文件夹,则递归调用该函数,直到将所有的文件递归获取并判断完毕
        elif isdir(temp_dir):
            get_file_list(temp_dir, file_type, file_list)
    # 返回文件列表 file_list
    return file_list

调用函数获取 mkv 文件列表(示例):

输出结果

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值