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

Python中如何使用字典校验文件组是否全部完成扫描

问题解答

问题1:是否应该使用exec动态创建字典?

不建议使用exec动态创建唯一命名的字典,这种写法不仅会直接导致语法错误,还会带来变量命名冲突、调试难度高、可维护性差等问题。
你完全可以用嵌套字典实现你要的结构,外层字典的键是图片组名(treepicture、carpicture等),值是每个组对应的编号状态字典,结构示例如下:

group_status = {
    "treepicture": {"01": "found", "02": "found"},
    "carpicture": {"08": "found"}
}

这个结构完全匹配你的需求,不需要动态生成变量。

问题2:如何实现跨函数访问分组状态?

不需要单独为每个分组创建全局变量,仅需维护一个全局的嵌套字典即可,实现逻辑如下:

代码实现示例

1. 函数外预先定义总状态字典

# 存储所有分组的扫描状态
group_status = {}

2. 扫描函数内的逻辑替换

把你之前的exec相关代码全部替换成以下内容:

# uniqueAngle为拆分得到的分组名,timeEntry为拆分得到的编号(如01、02)
if uniqueAngle not in group_status:
    # 新分组初始化空的状态字典
    group_status[uniqueAngle] = {}
# 标记当前编号已扫描到
group_status[uniqueAngle][timeEntry] = "found"

3. 扫描完成后的校验逻辑

# 遍历所有分组校验完整性
for group_name, seq_map in group_status.items():
    missing_list = []
    # 生成01到10的所有预期编号
    for num in range(1, 11):
        target_seq = f"{num:02d}"
        if target_seq not in seq_map:
            missing_list.append(f"{group_name}_{target_seq}.jpg")
    if not missing_list:
        print(f"分组{group_name}:完整,所有10个文件已集齐")
    else:
        print(f"分组{group_name}:缺失以下文件:{', '.join(missing_list)}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 02:12:02