如何在 Python 中制作一个时间敏感的循环?
How to make a time sensitive loop in Python?
我想制作一个每 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
我该怎么做?
你可以在这里使用time.sleep
。由于您需要一个 2 分钟的计时器,因此将 120(秒)作为参数值传递。
基本上,这转化为如下内容:
while True:
time.sleep(120)
print "Hello"
这将每 2 分钟打印 "Hello"
。
请注意,time.sleep 并不完全准确,并且由于 OS 其他进程的调度等和代码本身的执行,可能会出现一小段但任意的时间偏差。
使用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.
我想制作一个每 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
我该怎么做?
你可以在这里使用time.sleep
。由于您需要一个 2 分钟的计时器,因此将 120(秒)作为参数值传递。
基本上,这转化为如下内容:
while True:
time.sleep(120)
print "Hello"
这将每 2 分钟打印 "Hello"
。
请注意,time.sleep 并不完全准确,并且由于 OS 其他进程的调度等和代码本身的执行,可能会出现一小段但任意的时间偏差。
使用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.