如何计算TXT文件第二列最后7个值总和?Python代码失效求助
问题:计算TXT文件第二列最后7个值的总和/平均值
你的目标TXT文件内容:
08/12/2023 81.3 09/12/2023 80.8 10/12/2023 80.9 11/12/2023 81.0 12/12/2023 81.1 13/12/2023 81.5 14/12/2023 80.1 15/12/2023 81.0 16/12/2023 80.9 17/12/2023 80.6
需求是文件更新后,计算第二列最后7个值的总和(你代码里写的是求平均值,以下代码同时支持两种计算)。你当前代码的核心问题是:第二次读取文件时遍历了全部行的数值求和,而非仅取最后7行,且重复打开文件完全没必要。
修正后的代码:
total = 0 count = 7 with open('/storage/emulated/0/Python/lista.txt','r') as f: # 读取所有非空行,避免文件末尾空行引发错误 all_lines = [line.strip() for line in f if line.strip()] # 截取最后7行 target_lines = all_lines[-count:] # 打印目标行(可选) for line in target_lines: print(line) # 累加第二列数值 for line in target_lines: total += float(line.split()[1]) # 输出结果 print(f"最后7个值的总和:{total}") print(f"最后7个值的平均值:{total / count}")
核心改进:
- 单次读取文件,减少IO操作,提升效率
- 过滤空行,避免因文件格式问题导致
split()或索引报错 - 直接对最后7行进行计算,精准匹配需求
内容的提问来源于stack exchange,提问作者vecchiemaniere
相关产品推荐
相关产品推荐

