在特定时间之前运行Python程序

时间:2019-03-21 18:39:29

标签: python time while-loop jupyter-notebook

我想在jupyter笔记本中运行程序,并且该程序在特定时间(例如18:00)停止。我通过while循环和增量索引编写了程序,但是最好使用time参数来编写它。

我每天运行7个小时提到的程序。它必须不间断运行。

    while(i<500000):
         execute algorithm
         i+=1

但是我想像下面这样运行我的程序:

    while(not 18:00 clock):
         execute algorithm

7 个答案:

答案 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