猿问

使用 Python 和“无法识别的星期几”错误安排 Cron 作业

我正在尝试在 python 中构建一个 cron 作业调度程序,它从数据库中获取一个时间表并使用 crontab 库在 linux 中创建 cron 作业。但我无法弄清楚如何在尝试添加星期几时克服“无法识别的星期几:”错误,我希望 cron 在从数组中指定时运行。关于如何使用数组执行此操作的任何帮助都会非常有帮助。


from crontab import CronTab

from datetime import datetime


cron=CronTab('pi')


#the below line simulates grabbing the data from the database

row={'starttime':'2:56:00','sun':1,'mon':1,'tue':0,'wed':0,'thu':1,'fri':0,'sat':1}


#convert the "starttime" into the hour and minute to use on the cron

d=datetime.strptime(row['starttime'],'%H:%M:%S')

hour=d.strftime('%H')

minute=d.strftime('%M')


#figure out what day of week I want the cron to run on

dow=[]

if(row['sun'] == 1):

    dow.append("Sun")   

if(row['mon'] == 1):

    dow.append("Mon")   

if(row['tue'] == 1):

    dow.append("Tue")

if(row['wed'] == 1):

    dow.append("Wed")

if(row['thu'] == 1):

    dow.append("Thu")

if(row['fri'] == 1):

    dow.append("Fri")

if(row['sat'] == 1):

    dow.append("Sat")


#create the job

job=cron.new(command='python /home/pi/Documents/blinktest.py', comment='Schedule')

job.minute.on(minute)

job.hour.on(hour)

job.dow.on(dow) #<- this is the line I get the "unrecognised day of week" error


#write the cron

cron.write()

这是我得到的错误:


ValueError: Unrecognised Day of Week: '['Sun', 'Mon', 'Thu', 'Sat']'


守着星空守着你
浏览 174回答 1
1回答

斯蒂芬大帝

万一其他人遇到同样的问题,正如评论中提到的user1438644,将代码从job.dow.on(dow)到job.dow.on(*dow)成功了。
随时随地看视频慕课网APP

相关分类

Python
我要回答