仅在特定时间之间运行命令,否则运行其他命令

时间:2011-02-21 16:50:20

标签: python

我要做的是在特定时间之间更换壁纸。例如,我有一个我在家里使用的壁纸,以及我在学校使用的壁纸(这是一台笔记本电脑)。我想要做的是有一个运行shell命令的python脚本,它只在工作日和时间在08:00到14:15之间设置我的壁纸。

我正在使用python 3.13和arch linux。我遇到麻烦的部分是找到星期几,并比较时间。我知道如何通过python运行shell命令(os.system('command'))。

2 个答案:

答案 0 :(得分:3)

import datetime

day_of_week = datetime.date.today().weekday() # 0 is Monday, 6 is Sunday
time = datetime.datetime.now().time()

if day_of_week < 5 and (time > datetime.time(8) and time < datetime.time(14,15)):
    do_something()

答案 1 :(得分:0)

Wooble的回答是正确的。如果你想要一个效率稍低的版本,但不必记住每一天的索引,你可以使用工作日名称(假设你的本地是英文):

import datetime

week_day = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
today = datetime.date.today()
now = datetime.datetime.now().time()

def change_wallpaper():
    print "Changed!"

if today.strftime("%A") in week_day and (now > datetime.time(8) and now < datetime.time(14,15)):
    change_wallpaper()