Python遍历文件提取数值后,如何实现循环累加求和?
解决workSec数值累加求和问题
你只需要在循环外初始化一个总和变量,每次提取到workSec后将其累加到这个变量中,最后输出总和即可。修改后的代码如下:
import os import glob # 初始化总和变量,放在所有循环外面,避免每次循环重置为0 total_work_sec = 0 path = "你的目标文件夹路径" # 记得替换成实际路径 for filename in glob.glob(os.path.join(path, '*.lst'), recursive=True): # glob已返回完整路径,无需再用os.getcwd()拼接 with open(filename, 'r') as f: for line in f: if "'INTERNAL_DATA',103,1,'','T','','" in line: workTime = line.split("'INTERNAL_DATA',103,1,'','T','','")[-1].strip() workSec = int(workTime[9:11]) # 累加提取到的数值 total_work_sec += workSec # 保留原打印可查看单个值,不需要可删除 print(workSec) # 所有文件处理完成后输出总和 print("总和:", total_work_sec)
关键修改说明:
- 总和变量初始化:
total_work_sec = 0必须放在最外层循环之前,这样每次提取到数值时,都会在之前的总和基础上累加,不会因循环重置为0导致无法累计。 - 累加操作:
total_work_sec += workSec是核心步骤,实现将每个提取到的workSec数值累加到总和变量中。 - 路径优化:
glob.glob返回的是完整文件路径,直接用filename打开文件即可,无需额外拼接当前工作目录。
运行修改后的代码,你会先看到每个单独的workSec值,最后得到所有数值的总和。
内容的提问来源于stack exchange,提问作者KonradJ
相关产品推荐
相关产品推荐

