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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 08:40:28