Je veux exécuter mon programme dans jupyter notebook et ce programme s'arrête à une heure précise (par exemple 18h00). J'ai écrit un programme avec une boucle while et un index incrémental, mais il est préférable de l'écrire avec le paramètre time.
Je lance le programme mentionné pendant 7 heures chaque jour. Il doit fonctionner sans arrêt.
while(not 18:00 clock): execute algorithm
Mais j'aimerais exécuter mon programme comme ci-dessous:
while(i<500000): execute algorithm i+=1
7 Réponses :
importer la date / heure
https://docs.python.org/3/library/datetime.html
Vous pouvez ensuite utiliser les différentes fonctions (heure ou chronomètre) pour régler une heure.
timeNow = datetime.datetime () print timeNow
Vous pouvez configurer cela comme une tâche cron et démarrer la tâche à l'heure x et l'arrêter à l'heure x.
if datetime.datetime.now().hour >= 18: return
Vous pouvez créer une fonction prenant des heures et des minutes comme paramètres et effectuer une vérification dans la boucle while
:
import datetime def proc(h, m): while True: currentHour = datetime.datetime.now().hour currentMinute = datetime.datetime.now().minute if currentHour == h and currentMinute == m: break # Do stuff... # Function call. proc(18,0)
Use:
datetime.datetime(2019, 3, 21, 22, 0, 0) #Year, month, day, hour, minute and second you want.
Allumé pendant:
while alarm < datetime.datetime.now().time(): do something
Vous pouvez également définir une date spécifique, en définissant comme ceci:
import datetime #create the alarm clock. alarm = datetime.time(15, 8, 24) #Hour, minute and second you want.
Pour plus d'informations, consultez la documentation de datetime .
J'ai utilisé celui-ci. C'était utile! Merci
Vous pouvez créer un processus enfant qui mettra fin au processus parent et lui-même à un certain moment:
import multiprocessing as mp import time import datetime import sys import signal import os def process(hr, minute): while True: d = datetime.datetime.now() if d.hour == hr and d.minute == minute: os.kill(os.getppid(), signal.SIGTERM) sys.exit() else: time.sleep(25) p = mp.Process(target=process, args=(18, 0)) p.start() # your program here ...
Supposons que vous souhaitiez que votre code s'exécute à 22 h 00 (22 h 00) tous les jours. Si vous utilisez Linux, vous pouvez faire quelque chose comme ceci pour exécuter la tâche en tant qu'utilisateur root
# python code to search pattern in a string using regex import re str1 = 'this is {new} string with [special] words.' r = re.search(r'\{(.*?)\}', str1) if r: found =r.group() else: "No match found" print found
votre fichier python my_code.py
pourrait être quelque chose comme ça p >
sudo crontab -e 0 22 * * * /path/to/directory/python my_code.py
Bonjour et bienvenue, Pouvez-vous ajouter plus de détails techniques à votre question pour aider à reproduire le problème