在做數(shù)據(jù)整理時装盯,有時需要批量獲取指定路徑下特定類型的文件絕對路徑坷虑,Python似乎沒有這種依賴庫可以直接拿來使用,于是借助內(nèi)置的 os 模塊和遞歸來實現(xiàn)一個簡單的函數(shù)埂奈,達到獲取文件列表的目的迄损。
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)
# 如果當前絕對路徑的類型是一個文件夾,則遞歸調(diào)用該函數(shù)垮抗,直到將所有的文件遞歸獲取并判斷完畢
elif isdir(temp_dir):
get_file_list(temp_dir, file_type, file_list)
# 返回文件列表 file_list
return file_list
調(diào)用函數(shù)效果展示
image.png