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

如何从含坐标的文本文件生成以路径标识为键的嵌套列表字典?

解决方案

这里有个完整的Python实现,能帮你把目标txt文件中的数据转换成你需要的字典结构:

mydict = {}

# 替换成你的实际txt文件路径
with open('your_data.txt', 'r') as file:
    for line in file:
        # 清理行内容并分割成字段
        raw_data = line.strip().split(',')
        # 跳过格式不符合的行(避免报错)
        if len(raw_data) != 5:
            continue
        
        img_path, x1_str, y1_str, x2_str, y2_str = raw_data
        
        # 从路径中提取键:比如从values/test/10/blueprint-0.png得到"10-0"
        path_parts = img_path.split('/')
        # 取路径中第3段的数字(比如"10")和文件名中的数字(比如"0")
        group_num = path_parts[2]
        blueprint_num = path_parts[-1].split('-')[1].split('.')[0]
        dict_key = f"{group_num}-{blueprint_num}"
        
        # 将字符串格式的坐标转换为整数(需要浮点数的话用float即可)
        x1 = int(float(x1_str))
        y1 = int(float(y1_str))
        x2 = int(float(x2_str))
        y2 = int(float(y2_str))
        
        # 生成8个数值的矩形顶点列表(左上→右上→右下→左下)
        rect_coords = [x1, y1, x2, y1, x2, y2, x1, y2]
        
        # 更新字典:键不存在则创建空列表,再添加坐标
        if dict_key not in mydict:
            mydict[dict_key] = []
        mydict[dict_key].append(rect_coords)

# 打印结果验证
print(mydict)

关键步骤解释:

  • 安全读取文件:用with上下文管理器自动处理文件打开/关闭,避免资源泄漏。
  • 数据清洗:用strip()去掉换行符,split(',')分割每行数据;加了格式校验,跳过不符合路径,x1,y1,x2,y2格式的行。
  • 生成字典键:通过两次拆分路径字符串,提取出你需要的{数字}-{数字}格式键,适配你给出的路径结构。
  • 坐标转换:把原数据中字符串形式的浮点数(如"2089.0")转换成整数;如果需要保留浮点数,直接替换int(float(...))为float(...)即可。
  • 构建矩形坐标:按照你要求的顺序,把两个对角点扩展成矩形四个顶点的坐标列表。
  • 字典更新:检查键是否存在,不存在则初始化空列表,再将当前坐标列表添加进去,实现同一键下的嵌套列表结构。

注意事项:

  • 请把代码中的'your_data.txt'替换成你的实际文件路径(绝对路径或相对路径都可以)。
  • 如果你的txt文件路径在Windows系统下,注意路径分隔符要用\\或者原始字符串(比如r'C:\data\your_data.txt')。
  • 如果路径结构发生变化(比如不是values/test/{num}/blueprint-{num}.png),需要调整path_parts的索引或拆分逻辑来匹配新的路径格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:20:11