1 获取指定文件夹及其所有子文件夹、孙文件夹下指定文件类型的文件路径

获取指定文件夹下指定文件类型的文件路径是日常开发中经常需要用到的功能,比如说给定一个文件夹D:/example,我们现在需要获取这个文件夹下所有的mp4文件路径,包括其二级子文件夹、三级孙文件夹等所有的mp4文件,只要这个mp4文件存在于文件夹D:/example中。

所以我们应该写一个工具函数,这个工具函数需要包含以下功能:

  • 可以深度遍历文件夹,不管文件夹目录有多深
  • 可以获取多个指定文件类型的文件路径

我们在这里使用os.listdir函数以及递归子文件夹的方式,具体的示例代码如下:

import os

def get_specified_type_filelist(dir, file_type, file_path_list):
    file_ext_list = file_type.split('|')

    # 如果是文件
    if os.path.isfile(dir):
        file_ext = os.path.splitext(dir)[-1][1:]

        # 判断文件后缀名是否在指定范围内
        if file_ext in file_ext_list:
            file_path_list.append(dir)
            print(dir)

    # 如果是文件夹,则递归
    elif os.path.isdir(dir):
        for s in os.listdir(dir):
            new_dir = os.path.join(dir, s)
            get_specified_type_filelist(new_dir, file_type, file_path_list)


if __name__ == '__main__':
    root_path = 'C:/Users/xxx/Desktop/example'
    file_path_list = []
    get_specified_type_filelist(root_path, 'mp4|MP4|mov|MOV', file_path_list)

    print(file_path_list)

这个工具函数非常简单易懂,如果当前遍历的对象是文件,则获取其后缀名判断是否是所需要的文件类型,如果是则加入文件列表;如果当前遍历的对象是文件夹,则递归执行函数,知道所有对象都遍历完成。

我把这段代码放到Cursor里面,让它解释是什么意思

Python – 获取指定文件夹及其所有子文件夹、孙文件夹下指定文件类型的文件路径-StubbornHuang Blog

嗯嗯嗯,不错,解释的挺好,哈哈。