遍历目录列表查找指定位置的request.json或response.json文件
符合需求的简洁文件查找实现方案
实现思路
直接基于路径匹配规则精准查找,不需要遍历全量子目录,核心规则完全匹配需求:
- 仅扫描每个输入目录下的
result一级目录、result/scheduler二级目录 - 仅匹配文件名是
request.json或response.json的文件
代码实现
基于Python标准库pathlib实现,无需额外安装依赖,代码简洁易读:
from pathlib import Path from typing import List def find_target_json(input_paths: List[str]) -> List[str]: target_filenames = {"request.json", "response.json"} allowed_subpath_patterns = [ "result/*.json", "result/scheduler/*.json" ] matched_paths = [] for root_dir in map(Path, input_paths): if not root_dir.exists() or not root_dir.is_dir(): continue for pattern in allowed_subpath_patterns: for file in root_dir.glob(pattern): if file.is_file() and file.name in target_filenames: matched_paths.append(str(file.resolve())) return matched_paths # 示例调用 if __name__ == "__main__": input_paths = [ '/root/services/builds/tesla', '/root/services/builds/google/apis', '/root/services/builds/qa/tests', '/root/services/builds/airlines_Solutions', '/root/services/builds/traffic_patterns/api' ] for json_path in find_target_json(input_paths): print(json_path)
方案优势
- 逻辑和需求规则一一对应,可读性强,后续修改规则成本低
- 精准匹配路径,不会扫描无关目录,执行效率远高于全目录遍历
- 自动处理路径拼接,兼容不同操作系统的路径格式
- 自带非法路径过滤,鲁棒性更强
内容的提问来源于stack exchange,提问作者Chel MS
相关产品推荐
相关产品推荐

