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

Python批量处理多CSV文件仅输出单条结果 如何迭代输出所有结果

问题原因

你的计算、结果输出逻辑没有放在for file in files的循环缩进块内,程序只会在遍历完所有csv文件后,对最后一个遍历到的文件执行计算和输出,所以只能得到单个文件的结果。

修正方案

将所有单文件相关的处理逻辑(包括变量计算、结果输出)都缩进后放入for循环内部即可,修正后的代码如下:

import sys
import os
import logging
import subprocess
import argparse
import pandas as pd
import glob


files = glob.glob('/scratch/*/*.csv')

for file in files:
    df = pd.read_csv(file,delimiter = ',',skiprows=range(1,11))

    # 单文件计算逻辑放到循环内部,生成dif_r1a等变量
    # do some calculation on each file

    # calculate the final value
    metric = (max(max(dif_r1a),max(dif_r1c),max(dif_r1g),max(dif_r1t),max(dif_r2a),max(dif_r2c),max(dif_r2g),max(dif_r2t)))

    # 打印逻辑也放到循环内部
    print(os.path.basename(file) + ' ' + str(metric))

额外注意事项

  • 所有dif_开头的变量必须在循环内部初始化、计算,避免前一个文件的计算结果残留污染后续文件的输出
  • 如果需要汇总所有文件的结果,可以在循环外初始化一个空列表,每次循环将当前文件的文件名和metric值存入列表,循环结束后统一做导出等后续处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 06:45:03