Skip to main content
 首页 » 编程设计

Python~每周一天/一周的时间监视器

2025年05月04日14del

我正在尝试做的事情的基本概念:

我想让它检查现在是下午 2 点到 5 点还是星期日 {每隔 {2 小时} 如果为真,它应该继续到脚本的底部(它通过电子邮件向我发送我的服务器状态)并在 36 小时内重置计时器/它正在主动搜索以查看它是否在星期日下午 2-5 点

我见过几种不同的计时器方法,但我找不到一个主动扫描以查看是否是指定时间的方法(在这种情况下,如果它检查是否是下午 2 点到 5 点,那将是理想的周日每 2 小时)

任何帮助将不胜感激 尊敬, 詹姆斯的

编辑: 转发后马上就输出信息了,只需要添加时间模块 lol :P

到目前为止,脚本我还没有实现 .py 启动部分,但是当我确保它运行时我会更新帖子。

import datetime 
import croniter 
import crontab 
import time 
 
c = croniter.croniter("0 20,21,22 * * SUN") 
next_due_date = c.get_next(datetime.datetime) 
 
print c.get_next(datetime.datetime) 
 
while True: 
    now = datetime.datetime.now() 
    if now > next_due_date: 
        do_something() 
        time.sleep(60 * 60 * 36) 
    else: 
        time.sleep(60 * 60 * 2) 

Edit2:我尝试添加文件路径:导致键错误

import datetime 
import croniter 
import crontab 
import time 
 
c = croniter.croniter("0 20,21,22 * * SUN ./line.py") 
next_due_date = c.get_next(datetime.datetime) 
 
print c.get_next(datetime.datetime) 
 
while True: 
    now = datetime.datetime.now() 
    if now > next_due_date: 
        do_something() 
        time.sleep(60 * 60 * 36) 
    else: 
        time.sleep(60 * 60 * 2) 

请您参考如下方法:

我不太确定你想做什么,但据我所知,似乎使用 cron 任务就足够了。

您想在周日下午 2 点开始编写脚本吗?如果是,那么像这样的 crontab 可以:0 14 * * SUN ./my_script.py

如果您想查看下周日下午 2 点到 5 点的时间,您可以使用 croniter 模块解决问题。这是一个例子:

c = croniter.croniter("0 14,15,16 * * SUN") 
print c.get_next(datetime.datetime) # will output 2013-08-04 14:00:00 

知道下周日下午 2 点是什么时候,您可以编写如下循环:

c = croniter.croniter("0 14 * * SUN") 
while True: 
    now = datetime.datetime.now() 
    if now > next_due_date: 
        do_something() 
        next_due_date = c.get_next(datetime.datetime) 
        time.sleep(60 * 60 * 36) 
    else: 
      time.sleep(60 * 60 * 2) # sleep 2 hours