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

基于Python计算TXT文件中TRODRY与TROWET的均值

用Python批量计算TXT文件中TRODRY和TROWET的均值

处理逻辑

这类文件的目标数据集中在+TROP/SOLUTION标记后的区块里:

  • 找到该标记后,跳过以*SITE ____EPOCH___开头的表头行
  • 后续每行的第三列是TRODRY数值,第四列是TROWET数值
  • 收集所有有效数值后计算均值

代码实现

单个文件处理函数

def calculate_trop_mean(file_path):
    trodry_values = []
    trowet_values = []
    in_solution_block = False

    with open(file_path, 'r') as f:
        for line in f:
            line = line.strip()
            # 进入SOLUTION数据区块
            if line.startswith('+TROP/SOLUTION'):
                in_solution_block = True
                continue
            # 离开SOLUTION区块(若存在结束标记)
            if line.startswith('-TROP/SOLUTION'):
                in_solution_block = False
                break
            # 在区块内处理数据行
            if in_solution_block:
                if line.startswith('*SITE ____EPOCH___'):
                    continue
                parts = line.split()
                if len(parts) >= 4:
                    try:
                        trodry = float(parts[2])
                        trowet = float(parts[3])
                        trodry_values.append(trodry)
                        trowet_values.append(trowet)
                    except ValueError:
                        # 跳过无法转换为数值的异常行
                        continue
    # 计算均值(处理空数据情况)
    trodry_mean = sum(trodry_values) / len(trodry_values) if trodry_values else None
    trowet_mean = sum(trowet_values) / len(trowet_values) if trowet_values else None
    return trodry_mean, trowet_mean

批量处理目录下所有TXT文件

import os

def batch_process_trop_files(directory):
    # 遍历目标目录下的所有txt文件
    for filename in os.listdir(directory):
        if filename.endswith('.txt'):
            file_path = os.path.join(directory, filename)
            trodry_mean, trowet_mean = calculate_trop_mean(file_path)
            print(f"文件: {filename}")
            print(f"TRODRY均值: {trodry_mean:.2f}" if trodry_mean else "无有效TRODRY数据")
            print(f"TROWET均值: {trowet_mean:.2f}" if trowet_mean else "无有效TROWET数据")
            print("-" * 30)

# 使用示例:替换为你的目标目录路径
batch_process_trop_files('./trop_data_files')

说明

  • 代码自动跳过非数据行、表头行,以及无法转换为数值的异常行
  • 若文件无有效数据,会返回None并提示对应信息
  • 批量处理时会遍历指定目录下所有.txt文件,逐个输出计算结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 02:26:17