如何在文本文件中按规则累加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
相关产品推荐
相关产品推荐

