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

时间:2010-12-28 05:52:05

标签: python

我有一个python函数,我想在每个月的最后一天运行该函数。

我该怎么做?

3 个答案:

答案 0 :(得分:3)

这要求使用cron作业或类似的计划应用程序。 http://en.wikipedia.org/wiki/Cron

#!/bin/bash

TODAY=`/bin/date +%d`
TOMORROW=`/bin/date +%d -d "1 day"`

# See if tomorrow's day is less than today's
if [ $TOMORROW -lt $TODAY ]; then
        exit 0
fi

exit 1

现在我们可以将此行添加到您的crontab(可以通过crontab -e

访问)
12 0 * * * last-day-of-month.sh && /usr/bin/python /location/of/my/python/script

如果您使用的是Windows,则可以使用带有参数LASTDAY的命令行工具schtasks来设置在该月的最后一天执行的任务。 More info here

答案 1 :(得分:1)

如果你想要一个python解决方案,你可以查看celery

答案 2 :(得分:0)

在特定时间运行代码没有“Python中的函数”。唯一的方法是让一个功能一直运行 来执行此操作。它看起来像这样:

import calendar
import datetime
import time

def called_last_day():
    print("Hark! It's the last day of the month!")

def running_all_the_time():
    while True:
        today = datetime.date.today()
        if today.day == calendar.month_range(today.year, today.month):
             called_last_day()
        time.sleep(3600) # Wait for an hour

所以你可以做到,但它有点愚蠢。请改用cron和schtask。真。