python如何安排一个函数在每个月的最后一天运行?

2024-09-27 09:32:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用pythonsched将函数安排在每个月的最后一天运行。在

有人能帮我吗?在


Tags: 函数pythonsched
2条回答

一个月的最后一天具有下一个日期的日期值小于当前日期值的属性。在

找出从当天到一天结束有多少天。以上面列出的属性作为线索。使用datetime模块查找详细信息。在

  1. 编写一个函数def mydaycount():,该函数在当前日期以0开头,并将为随后的每一天生成更高的值。这和你的时间。时间()每天打电话

  2. 编写一个函数defmydaydelay(num):它将休眠一天。

现在,重要的是

class sched.scheduler(timefunc, delayfunc)

timefunc可以是调用时返回值的任何函数,在您的例子中,它将是mydaycount,delayfunc将是mydaydelay。在

然后,您可以使用action作为您的action作为函数来调用scheduled对象,其中到月底的天数是多少。在

^{pr2}$

你的程序的大纲应该是这样的。在

import sched
import datetime

def mydaycount():
    yield int_days

def mydaydelay(n):
    sleep_for_days(n)

scheduler = sched.scheduler(mydaycount, mydaydelay)

def print_event(name):
    print 'EVENT:', name

n_days_to_last_day = 3 # This should be your calculate value

scheduler.entertabs(n_days_to_last_day, 1, print_event, ('last day',))

scheduler.run()

使用crontab每天运行并使用日历.monthrange公司名称:

 import datetime, calendar
 today = datetime.date.today()
 if calendar.monthrange(today.year, today.month)[1] != today.day:
     exit()

Pythonsched和crontab并不在同一个联盟中,除非您在谈论另一个Python sched。Windows有一个类似的调度程序,或者可以安装cygwin crontab。在

如果您在某个奇怪的平台中,缺少系统范围的任务调度程序,那么您可以留下一个无限循环来运行上述测试时间。睡觉(24*60*60)秒之类的。在

相关问题 更多 >

    热门问题