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

Python如何统计已有旧内容的文件中后续新增追加的行数

解决方案

方法1:提前记录文件初始行数(最常用,适合主动监控场景)

在开始监控追加内容前,先记录当前文件的总行数,后续统计时做差值计算即可:

  • 第一步:记录初始行数
    initial_lines=$(wc -l < 目标文件路径)
  • 第二步:统计新增行数时执行如下命令即可得到结果
    echo $(( $(wc -l < 目标文件路径) - initial_lines ))
    该方案准确性最高,只要原有内容不出现行删除、拆分或合并,统计结果不会出现偏差

方法2:基于字节偏移量统计(适合无法提前记录初始行数的场景)

如果已经错过了记录初始行数的时间点,可以通过字节偏移量定位旧内容末尾位置,再统计新增内容:

  • 场景A:可以确认旧内容完全不会被修改
    先记录旧文件的总字节大小:
    old_size=$(stat -c %s 目标文件路径)
    后续统计新增行数时执行:
    tail -c +$((old_size + 1)) 目标文件路径 | wc -l
  • 场景B:不知道旧文件初始大小,仅知道旧内容末尾的特征文本
    通过特征行定位偏移量:
    old_offset=$(grep -F "旧内容最后一行的完整文本" 目标文件路径 | tail -1 | wc -c)
    再统计偏移量之后的行数:
    tail -c +$((old_offset + 1)) 目标文件路径 | wc -l

方法3:实时监控追加内容计数(适合持续统计增量的场景)

如果需要从当前时间点开始,实时统计所有后续追加的行,可以用如下脚本实现:

#!/bin/bash
target_file="替换为你的目标文件路径"
add_count=0
# 直接跳到文件末尾,避免统计旧内容
tail -f -n 0 "$target_file" | while read -r line; do
    ((add_count++))
    echo "当前累计新增行数: $add_count"
    # 如需持久化计数,可新增逻辑将add_count写入本地存储文件
done

脚本重启后计数会重置,如有长期统计需求可自行添加计数持久化逻辑


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 11:27:04