Python读取文件名后自动匹配调用对应处理函数批量处理文件如何实现
实现方案
你直接在现有main.py的基础上补充如下代码即可,运行后会自动遍历处理所有符合要求的文件:
import os if __name__ == "__main__": # 定位Files文件夹路径 base_dir = os.path.dirname(os.path.abspath(__file__)) files_dir = os.path.join(base_dir, "Files") # 遍历Files文件夹下所有文件 for filename in os.listdir(files_dir): # 跳过子文件夹,只处理文件 file_path = os.path.join(files_dir, filename) if not os.path.isfile(file_path): continue # 提取文件名前缀(去掉后缀) prefix = os.path.splitext(filename)[0] # 构造目标函数名 target_func_name = f"{prefix}_fct" # 检查是否存在对应的处理函数 if target_func_name in globals(): # 调用对应函数,传入文件完整路径 print(f"正在处理文件:{filename},调用函数:{target_func_name}") globals()[target_func_name](file_path) else: print(f"跳过文件{filename}:未找到对应的{target_func_name}处理函数")
逻辑说明
- 代码默认以
main.py所在的目录为基准定位Files文件夹,不需要写死绝对路径,换环境也能正常运行 - 自动跳过
Files目录下的子文件夹,只处理真实文件 - 提取前缀时会自动去掉所有类型的文件后缀,不管是xlsx、txt还是csv都能正确识别
- 找不到对应处理函数的文件会直接跳过并打印提示,不会报错中断运行
- 你不需要修改已经写好的
A_fct/B_fct等处理函数,直接把原来写在函数里的处理逻辑补上就行,函数接收的参数就是对应文件的完整路径
内容的提问来源于stack exchange,提问作者Learner
相关产品推荐
相关产品推荐

