
本文介绍如何在Python中遍历当前目录,筛选出以指定前缀开头、以特定后缀结尾的Python脚本文件,并从中提取核心名称作为变量(如从 wf_list_dir_param.py 提取 wf_list_dir)。
本文介绍如何在python中遍历当前目录,筛选出以指定前缀开头、以特定后缀结尾的python脚本文件,并从中提取核心名称作为变量(如从 wf_list_dir_param.py 提取 wf_list_dir)。
在实际开发中,常需根据文件命名规则动态识别并提取关键标识符(如模块名、任务ID等),而非硬编码文件名。针对您的需求——从当前目录中找出形如 wf_*_param.py 的文件,并截取 _param.py 之前的部分作为变量——推荐使用现代、可读性强且跨平台的 pathlib 模块。
以下为完整实现方案:
from pathlib import Path
# 定义匹配模式
prefix = "wf"
suffix = "_param.py"
source_dir = Path(".") # 当前工作目录
# 使用 glob 查找匹配文件(支持通配符)
matched_files = list(source_dir.glob(f"{prefix}*{suffix}"))
if not matched_files:
print("未找到匹配的文件(例如:wf_xxx_param.py)")
else:
# 提取首个匹配项的核心名称(可按需扩展为列表)
target_file = matched_files[0]
variable_name = target_file.stem.replace(suffix, "") # 更健壮:用 stem 避免扩展名干扰
# 或等价写法:variable_name = target_file.name[:-len(suffix)]
print(f"匹配文件:{target_file.name}")
print(f"提取变量:{variable_name}")
✅ 优势说明:
-
pathlib.Path.glob()比os.listdir()+ 字符串判断更简洁、语义清晰; -
target_file.stem自动去除扩展名(如.py),避免手动处理.py后缀带来的边界风险; - 支持通配符
*,天然适配wf_*_param.py这类模式; - 返回
Path对象,便于后续路径操作(如读取、移动、获取绝对路径等)。
⚠️ 注意事项:
让 macOS 自动化像说话一样简单 —— 用代码控制你的 Mac,无需学习 AppleScript 系统要求 macOS 14+ (Sonoma) Python 3.9+ 需要开启:辅助功能 + 屏幕录制权限
- 若存在多个匹配文件(如
wf_a_param.py,wf_b_param.py),上述代码默认取第一个;如需全部提取,可用列表推导式:variables = [f.stem.removesuffix("_param") for f in matched_files](Python ≥3.9 推荐
removesuffix();旧版本请用f.stem[:-len("_param")]) - 确保当前工作目录正确(可通过
Path.cwd()显式确认); - 文件名区分大小写(Linux/macOS 默认敏感),如需忽略大小写,建议改用
glob("**/*")+ 手动lower()判断。
通过该方法,您能可靠、可维护地将文件命名约定转化为程序变量,适用于自动化脚本、配置发现或插件加载等场景。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!










