2 votes

Exécuter la commande seulement entre certaines heures, sinon exécuter une autre commande

Ce que j'essaie de faire, c'est de changer mon fond d'écran entre certaines heures. Par exemple, j'ai un fond d'écran que j'utilise à la maison, et un fond d'écran que j'utilise à l'école (c'est un ordinateur portable). Ce que j'aimerais faire, c'est avoir un script python qui exécute une commande shell qui définit mon fond d'écran uniquement lorsque c'est un jour de semaine et que l'heure est comprise entre 08:00 et 14:15.

J'utilise python 3.13 et arch linux. La partie sur laquelle j'ai des difficultés est de trouver le jour de la semaine et de comparer l'heure. Je sais comment exécuter la commande shell via python(os.system('command')).

6voto

Wooble Points 35620
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()

0voto

Rod Points 7510

La réponse de Wooble est juste. Si vous voulez une version un peu moins efficace mais sans avoir à vous souvenir de l'index de chaque jour, vous pouvez utiliser le nom du jour de la semaine (en supposant que votre local est anglais) :

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()

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X