我有一个python函数,我想在每个月的最后一天运行该函数。
我该怎么做?
答案 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。真。