You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于路径列表检测目标编号文件夹的video/image子文件夹缺失情况

问题解决:检查编号文件夹下的子文件夹缺失情况

需求说明

给定路径列表all_path和需要检查的子文件夹前缀列表subfolder_startswith(固定为["video","image"]),需判断每个编号文件夹下是否存在这两个子文件夹,输出缺少对应子文件夹的编号及缺失项,格式为编号: 缺失的子文件夹。

输入示例

all_path = [
    "my_path/output/12345/video/folder/1",
    "my_path/output/12345/video/folder/2",
    "my_path/output/12345/video/folder/3",
    "my_path/output/98745/video/folder/1",
    "my_path/output/98745/video/folder/2",
    "my_path/output/90000/video/folder/1",
    "my_path/output/12345/image/folder/10",
    "my_path/output/12345/image/folder/9",
    "my_path/output/12345/image/folder/8",
    "my_path/output/98745/image/folder/3",
    "my_path/output/98745/image/folder/9",
    "my_path/output/11145/image/folder/8"
]
subfolder_startswith = ["video","image"]

输出示例

11145: video
90000: image

解法实现(Python)

def find_missing_subfolders(all_path, subfolder_list):
    # 用字典存储每个编号对应的已存在子文件夹集合
    folder_map = {}
    for path in all_path:
        parts = path.split('/')
        # 提取编号(路径中第3段,索引从0开始)
        folder_id = parts[2]
        # 提取子文件夹名称(路径中第4段)
        subfolder = parts[3]
        # 初始化集合,添加子文件夹
        if folder_id not in folder_map:
            folder_map[folder_id] = set()
        folder_map[folder_id].add(subfolder)
    
    # 遍历所有编号,检查缺失的子文件夹
    missing = []
    for folder_id, existing_subfolders in folder_map.items():
        for required_sub in subfolder_list:
            if required_sub not in existing_subfolders:
                missing.append(f"{folder_id}: {required_sub}")
    
    return missing

# 执行函数并输出结果
result = find_missing_subfolders(all_path, subfolder_startswith)
for line in result:
    print(line)

代码逻辑说明

  1. 路径解析:将每个路径按/分割,提取出编号(路径的第3个分段)和子文件夹名称(第4个分段)。
  2. 构建映射关系:用字典记录每个编号下已存在的子文件夹,使用集合避免重复统计。
  3. 检查缺失项:对每个编号,对比需要检查的子文件夹列表,找出未在集合中的项,整理成要求的格式。
  4. 输出结果:遍历缺失列表,逐行打印。

内容的提问来源于stack exchange,提问作者Beyond

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 19:30:54