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

遍历文件匹配项并对匹配后的字段执行算术运算

批量替换文本行生成新内容的解决方案

这里有一个实用的Python脚本方案,能帮你高效处理这个批量文本替换需求,完全匹配你描述的规则:

核心思路

  • 逐行读取目标文件,精准识别包含120.50c的行
  • 提取每行里紧随的数值字段(比如示例中的1.0550E-05)
  • 用该数值分别乘以0.79、0.10、0.11,得到三个新数值
  • 将原单行替换为三行,分别对应120.39c、120.40c、120.41c加上计算后的新数值

Python实现代码

# 替换成你自己的输入、输出文件路径
input_file_path = "source_file.txt"
output_file_path = "result_file.txt"

# 配置新标签和对应的计算系数,方便后续调整
replace_rules = [
    ("120.39c", 0.79),
    ("120.40c", 0.10),
    ("120.41c", 0.11)
]

# 以只读模式打开原文件,写入模式打开输出文件
with open(input_file_path, 'r', encoding='utf-8') as in_file, \
     open(output_file_path, 'w', encoding='utf-8') as out_file:
    
    for line in in_file:
        cleaned_line = line.strip()
        # 只处理包含目标字符串的行
        if "120.50c" in cleaned_line:
            # 拆分标签和数值部分,兼容可能的空格分隔
            line_parts = cleaned_line.split()
            if len(line_parts) >= 2:
                try:
                    original_num = float(line_parts[1])
                    # 遍历规则生成三行新内容
                    for new_tag, coeff in replace_rules:
                        calculated_num = original_num * coeff
                        # 保持科学计数法格式,和原数值的精度对齐
                        new_line = f"{new_tag} {calculated_num:.4E}\n"
                        out_file.write(new_line)
                except ValueError:
                    # 如果数值转换失败,原样保留该行,避免数据丢失
                    out_file.write(line)
            else:
                # 格式不符合预期的行,原样写入
                out_file.write(line)
        else:
            # 不包含目标字符串的行,直接写入输出文件
            out_file.write(line)

使用提示

  1. 把代码里的source_file.txt和result_file.txt替换成你实际的文件路径
  2. 脚本不会修改原文件,所有修改都写入新文件,安全性拉满
  3. 如果你的数值不是科学计数法,或者需要调整小数位数,可以修改:.4E这个格式符(比如:.6f表示保留6位小数的普通格式)

内容的提问来源于stack exchange,提问作者Bryon C.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 09:13:45