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

如何用Python检测文本文件首行是否变更并实现单次打印

解决文本文件首行变更重复提示及无法检测后续变更的问题

原代码存在两个核心问题:

  • 首行变更后持续打印提示:因为initial变量始终保留初始值,每次循环对比都会触发else分支
  • 无法检测后续变更:initial未随首行更新,后续再变更时,当前值与旧初始值对比仍不等,只会重复旧提示,无法识别新变更

修正后的代码

import time

def get_first_line():
    with open('readme.txt') as f:
        return f.readline().strip('\n')

def monitor_file():
    current_line = get_first_line()
    print(f"初始首行值: {current_line}")
    while True:
        new_line = get_first_line()
        if new_line != current_line:
            print(f"首行已变更为: {new_line}")
            current_line = new_line  # 更新基准值,避免重复打印并支持后续变更检测
        time.sleep(0.5)  # 添加延迟降低CPU占用

monitor_file()

关键修改说明

  1. 更新基准值:每次检测到首行变更后,立即将current_line更新为新值,确保下次循环以最新值为对比基准,解决重复打印和无法检测后续变更的问题
  2. 优化输出内容:直接打印变更后的首行值,替代模糊提示,更直观
  3. 添加延迟:通过time.sleep()降低无限循环的CPU占用率
  4. 语义化命名:将函数和变量名改为更清晰的名称,提升代码可读性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 06:26:27