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

Python导出字典到CSV异常及添加文件名字段求助

解决CSV导出异常及添加图片文件名问题

问题根源

你代码里的zip(*res1.values())是核心问题——res1的values是两个字符串'Passed'和'Passed',zip会把每个字符串拆成单个字符逐个配对,循环输出后自然每个字母占一行。

修正后的完整代码

import os
import glob

# 替换成你的图片目录路径
TARGET_DIR = "你的目标目录"

with open('glaresss_result.csv','wt') as f:
    # 生成带文件名的表头(也可以直接写固定表头:header = ['filename', 'glare', 'brightness'])
    sample_img = glob.glob(os.path.join(TARGET_DIR, "*.png"))[0]
    res1, _ = send_request_qcglare(sample_img)
    header = ['filename'] + list(res1.keys())
    f.write(",".join(header) + "\n")
    
    for imgpath in glob.glob(os.path.join(TARGET_DIR, "*.png")):
        res1, res = send_request_qcglare(imgpath)
        # 提取图片纯文件名
        filename = os.path.basename(imgpath)
        # 组装当前行数据
        row = [filename] + list(res1.values())
        # 写入CSV
        f.write(",".join(row) + "\n")

关键改动说明

  1. 新增文件名表头:在原有检测项前添加filename字段,满足需求;
  2. 移除错误的zip循环:直接将res1的检测结果转为列表,彻底避免字符拆分问题;
  3. 提取文件名:os.path.basename(imgpath)能从完整路径中取出纯文件名(比如/home/imgs/test.png会得到test.png);
  4. 自动管理文件:用with语句处理文件,无需手动调用f.close(),避免资源泄漏。

预期CSV输出示例

假设处理3张图片,输出格式如下:

filename,glare,brightness
test1.png,Passed,Passed
test2.png,Passed,Passed
test3.png,Passed,Passed

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 01:31:25