想让程序每月执行一次,使用 Python 的 schedule 模块,请给出示例,不要用schedule.every().month...
时间: 2024-05-13 07:15:43 浏览: 152
schedule 模块默认不支持按月调度任务,但可以借助 datetime 模块实现按月调度任务。以下是一个示例,每月 1 号执行一次:
```python
import schedule
import datetime
def job():
print("Job executed!")
def monthly_job():
now = datetime.datetime.now()
if now.day == 1:
job()
schedule.every().day.at("00:00").do(monthly_job)
while True:
schedule.run_pending()
```
这个示例中,我们首先定义了一个 `job` 函数,它表示要执行的任务。然后,定义了一个 `monthly_job` 函数,它利用 `datetime.datetime.now()` 获取当前时间,并判断当前日期是否为每月 1 号,如果是,则调用 `job` 函数。
最后,我们使用 `schedule.every().day.at("00:00").do(monthly_job)` 将 `monthly_job` 函数添加到调度器中。这里我们使用 `schedule.every().day` 每天都运行调度器,然后在 `at` 方法中指定时间,这里我们指定为每天的 0 点。由于 `monthly_job` 函数会判断日期,因此只有在每月 1 号时才会执行任务。
最后,我们使用 `while True` 循环不断运行调度器,直到程序结束。
阅读全文