如何在Python中创建时间敏感的循环?

时间:2015-04-12 16:39:58

标签: python time

我想创建一个每2分钟打印一次语句的函数。我是Python的新手,并不完全理解时间库。这是我到目前为止的代码:

 from datetime import datetime
 import time                

 now = datetime.now()       

 print now.second           
 print "start"
   while True:
      print "while loop started"
    if (now % 2 == 0):     
       print "Hello"     
    else:                  
       break 

我该怎么做?

2 个答案:

答案 0 :(得分:5)

您可以在此处使用time.sleep。由于您需要一个2分钟的计时器,因此传递120(秒)作为参数值。

基本上,这转化为如下所示:

while True:
    time.sleep(120)
    print "Hello"     

这将每2分钟打印"Hello"

请注意,time.sleep并不完全准确,并且由于其他进程的OS调度等以及代码本身的执行,可能会在很短但任意的时间内关闭。

答案 1 :(得分:2)

使用sched模块

import sched, time
s = sched.scheduler(time.time, time.sleep)
def do_something(sc): 
    print "Doing stuff..."
    # do your stuff
    sc.enter(60, 1, do_something, (sc,))

s.enter(60, 1, do_something, (s,))
s.run()

看看here