解析crontab风格的行

44 投票
2 回答
47833 浏览
提问于 2025-04-17 02:07

我需要在Python中解析一个类似于crontab的时间表定义,比如说“00 3 * * *”,并找出这个时间表上最后一次应该运行的时间。

有没有什么好的(最好是小巧的)库可以解析这些字符串,并把它们转换成日期呢?

2 个回答

2

也许你可以试试这个模块:

http://code.activestate.com/recipes/577466-cron-like-triggers/

我用这个模块在Python中做了一个用户空间的定时任务,它运行得非常好。这个模块可以处理类似于crontab的格式。

83

也许这个Python包 croniter 能满足你的需求。

使用示例:

>>> import croniter
>>> import datetime
>>> now = datetime.datetime.now()
>>> cron = croniter.croniter('45 17 */2  * *', now)
>>> cron.get_next(datetime.datetime)
datetime.datetime(2011, 9, 14, 17, 45)
>>> cron.get_next(datetime.datetime)
datetime.datetime(2011, 9, 16, 17, 45)
>>> cron.get_next(datetime.datetime)
datetime.datetime(2011, 9, 18, 17, 45)

撰写回答