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

定时网站拦截程序无法自动解锁及锁定文件内容消失问题求助

问题分析与解决

一、拦截时间到后网站仍锁定的原因及修复

核心问题:程序只执行一次逻辑,不持续监控时间

你的代码里block_websites()函数仅在程序启动时运行一次:

  • 如果启动时当前时间早于设定的end_time,程序只会执行拦截操作,然后直接退出,不会等到时间到点后自动触发解锁。
  • 只有当你在超过end_time之后才启动程序,才会执行解锁逻辑。

其他可能诱因

修改hosts文件后,系统DNS缓存可能还保留旧记录,导致网站仍被拦截。Windows下可以手动执行ipconfig /flushdns刷新缓存。

修复方案

让程序持续运行并定时检查时间,比如加入循环和睡眠:

import time

if __name__ == '__main__':
    while True:
        block_websites()
        # 每60秒检查一次,可按需调整间隔
        time.sleep(60)

注意:修改Windows的hosts文件需要管理员权限,所以运行程序时要右键选择“以管理员身份运行”,否则解锁操作可能失败。

二、锁定txt文件后内容消失是否正常?

这绝对不是正常现象,你的代码里根本没有对blocked_sites.txt做写入或清空操作:
代码中用r+模式打开文件,这个模式是读写共存,但打开时不会清空文件内容——只有w或w+模式才会在打开时清空文件。

可能的原因

  1. 测试时的误操作:你可能在其他代码或手动操作中,用w模式打开过blocked_sites.txt,导致内容被清空。
  2. 混淆了锁文件与目标文件:filelock生成的blocked_sites.txt.lock是专门的锁文件,本身就是空的,这是正常的(锁文件仅用来标记文件被占用,不需要存储内容),别把它和你的网站列表文件搞混了。
  3. 权限问题:如果程序没有足够权限读取blocked_sites.txt,会出现读取内容为空的情况,但原文件实际内容并没有消失。
  4. 文件损坏或误删:比如手动删除了文件内容,或者磁盘故障导致文件损坏。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 23:15:42