在做数据整理时,有时需要批量获取指定路径下特定类型的文件绝对路径,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 文件列表(示例):