如何从文件名字符串中判断是dashboard还是widget并执行对应操作
从文件名识别dashboard/widget类型并处理多文件场景
要解决这个问题,核心思路是利用文件名末尾固定后缀的特性,直接检查字符串结尾即可,不用复杂的正则匹配。下面分场景给你具体实现方案:
一、基础单文件判断
不管文件名前缀是下划线、点还是连字符分隔,只要末尾是dashboard.json或widget.json,用语言自带的「结尾匹配」方法就能快速识别:
Python 示例
filename = "jhgwefj-gfjh.widget.json" if filename.endswith("dashboard.json"): # 这里写dashboard相关操作 print("执行dashboard专属逻辑") elif filename.endswith("widget.json"): # 这里写widget相关操作 print("执行widget专属逻辑") else: # 可选:处理不符合格式的异常情况 print("无法识别的文件类型")
JavaScript 示例
const filename = "tes.test.dashboard.json"; if (filename.endsWith("dashboard.json")) { // 执行dashboard操作 console.log("处理dashboard文件"); } else if (filename.endsWith("widget.json")) { // 执行widget操作 console.log("处理widget文件"); } else { console.log("未知文件格式"); }
二、多同名文件场景处理
如果存在多个同类型文件(比如多个xxx_dashboard.json),可以通过遍历目录批量处理,还能结合文件属性区分:
Python 批量遍历示例
import os # 目标目录路径 target_folder = "./your_target_folder" # 遍历目录下所有文件 for file_name in os.listdir(target_folder): # 过滤出目标文件 if file_name.endswith("dashboard.json"): file_path = os.path.join(target_folder, file_name) # 这里可以添加按时间排序、读取文件内容等操作 print(f"正在处理dashboard文件:{file_path}") elif file_name.endswith("widget.json"): file_path = os.path.join(target_folder, file_name) print(f"正在处理widget文件:{file_path}")
多文件区分技巧
- 按时间排序:可以用
os.path.getmtime(file_path)获取文件修改时间,排序后再处理 - 文件名编号提取:如果文件名带编号(比如
dashboard_1.json),可以用字符串分割提取编号区分 - 去重处理:如果担心重复文件,可以先收集所有文件路径,去重后再执行操作
三、额外注意事项
- 大小写兼容:如果文件名可能出现大写(比如
Dashboard.json),可以先转小写再判断:filename.lower().endswith("dashboard.json") - 带路径的文件名:如果输入的是完整文件路径(比如
/user/docs/abc.widget.json),endswith方法依然有效,无需额外处理路径前缀 - 异常防护:建议加上else分支处理不符合格式的文件,避免程序报错
内容的提问来源于stack exchange,提问作者user1234
相关产品推荐
相关产品推荐

