我想在jupyter笔记本中运行程序,并且该程序在特定时间(例如18:00)停止。我通过while循环和增量索引编写了程序,但是最好使用time参数来编写它。
我每天运行7个小时提到的程序。它必须不间断运行。
while(i<500000):
execute algorithm
i+=1
但是我想像下面这样运行我的程序:
while(not 18:00 clock):
execute algorithm
答案 0 :(得分:1)
导入日期时间
https://docs.python.org/3/library/datetime.html
然后您可以使用各种功能(时间或timedelta)来设置时间。
timeNow = datetime.datetime() 现在打印时间
答案 1 :(得分:1)
import datetime
while datetime.datetime.now().hour < 18:
do stuff...
或
if datetime.datetime.now().hour >= 18:
return
答案 2 :(得分:1)
您可以创建一个以小时和分钟为参数的函数,并在Activity
循环内执行检查:
while
答案 3 :(得分:1)
使用:
import datetime
#create the alarm clock.
alarm = datetime.time(15, 8, 24) #Hour, minute and second you want.
在……上
while alarm < datetime.datetime.now().time():
do something
您也可以设置一个特定的日期,如下所示:
datetime.datetime(2019, 3, 21, 22, 0, 0) #Year, month, day, hour, minute and second you want.
有关更多信息,请查看datetime的文档。
答案 4 :(得分:1)
您可以创建一个子进程,该子进程将在特定时间终止父进程及其自身:
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 ...
答案 5 :(得分:0)
您可以将其设置为cron作业,并在x时刻启动该作业,然后在x时刻停止。
答案 6 :(得分:0)
让我们假设您希望代码每天运行10 pm(22:oo)小时。 如果您使用的是Linux,则可以执行以下操作以root用户身份运行作业
sudo crontab -e
0 22 * * * /path/to/directory/python my_code.py
您的python文件my_code.py
可能是这样的
# 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