2017-07-02 2 views
0

J'ai un script Python et je veux le lancer à 3 heures du matin. Voudrait simplement mettre quelque chose comme ça au sommet de celui-ci.Python Dormir jusqu'à un certain temps

while not 3am: 
    sleep(10) 

De cette façon, il reste endormi pendant 10 secondes jusqu'à 3 heures du matin. À 3h du matin, il exécute le reste du code ci-dessous, puis quitte le script. Y a-t-il un moyen simple de faire cela?

+3

Non, ce ne serait pas correct. Vous souhaitez utiliser un service prêt à l'emploi fourni par votre système d'exploitation. Soit crontab sur un environnement * nix ou Windows Scheduler sur un environnement Windows. – idjaw

Répondre

2

Solution avec une boucle de sommeil attente:

import datetime 
import time 

target_time = datetime.datetime(2017, 3, 7, 3) # 3 am on 3 July 2017 
while datetime.datetime.now() < target_time: 
    time.sleep(10) 
print('It is 3am, now running the rest of the code') 

Si au lieu de dormir, vous voulez faire d'autres travaux, envisagez d'utiliser threading.Timer ou sched module.

+0

C'est à peu près exactement ce que je veux, mais je pense qu'il y a une erreur mineure. Ne devrait-il pas être: datetime.datetime (2017, 7, 3, 3) à 3 heures demain matin? – Matt

+0

@Matt Mettez dans n'importe quelle date et l'heure que vous voulez :-) –