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

如何在文本文件中按规则累加text1、text2、text3后的整数值?

文本文件中text1/text2/text3数值分组累加方案

核心思路

遍历文本文件的每一行,以text1为分组起点:

  • 遇到text1时,新建一个累加组,把对应数值加进去
  • 后续遇到text2或text3,就把数值加到当前组里
  • 再次遇到text1时,结束当前组,开启新组

代码实现(Python)

先准备示例文本文件data.txt,内容如下:

text1:102        
text2:123        
text3:1432       
text1:12             
text1:34324      
text3:234234      

实现第一种输出(显示累加表达式)

current_group = []
with open('data.txt', 'r', encoding='utf-8') as f:
    for line in f:
        line = line.strip()
        if not line:
            continue
        key, val = line.split(':')
        num = int(val)
        if key == 'text1':
            # 输出上一个未完成的组
            if current_group:
                print('+'.join(map(str, current_group)))
            # 开启新分组
            current_group = [num]
        elif key in ('text2', 'text3'):
            current_group.append(num)
# 输出最后一个分组
if current_group:
    print('+'.join(map(str, current_group)))

执行后输出:

102+123+1432
12
34324+234234

实现第二种输出(显示累加总和)

只需要修改输出逻辑,对分组内的数值求和:

current_group = []
with open('data.txt', 'r', encoding='utf-8') as f:
    for line in f:
        line = line.strip()
        if not line:
            continue
        key, val = line.split(':')
        num = int(val)
        if key == 'text1':
            if current_group:
                print(sum(current_group))
            current_group = [num]
        elif key in ('text2', 'text3'):
            current_group.append(num)
if current_group:
    print(sum(current_group))

执行后输出:

1657
12
268558

关键细节说明

  • 用strip()清理每行前后的空白字符,避免空行或多余空格干扰
  • 通过split(':')拆分键值对,把字符串数值转成整数类型
  • 用列表current_group临时存储当前分组的所有数值,既方便拼接表达式,也方便直接求和

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 23:15:43