Python每x分钟调用一个函数
如何在python中创建一个计时器,它每x分钟调用一个函数,而不让整个代码等待?使用如下方法:Python每x分钟调用一个函数,python,python-3.x,time,Python,Python 3.x,Time,如何在python中创建一个计时器,它每x分钟调用一个函数,而不让整个代码等待?使用如下方法: wait = 10 startTime = time.time() while wait > 0: if time.time()-startTime >= 1: startTime = time.time() print(wait) wait-=1 #do other things import time wait = 10
wait = 10
startTime = time.time()
while wait > 0:
if time.time()-startTime >= 1:
startTime = time.time()
print(wait)
wait-=1
#do other things
import time
wait = 10
for i in range(wait):
wait -= 1
time.sleep(1)
print(wait)
我不能100%确定您想问什么,因为您的示例代码当前有不正确的缩进 我想你的意思是这样的:
wait = 10
startTime = time.time()
while wait > 0:
if time.time()-startTime >= 1:
startTime = time.time()
print(wait)
wait-=1
#do other things
import time
wait = 10
for i in range(wait):
wait -= 1
time.sleep(1)
print(wait)
如果只删除time.sleep1,倒计时时将不再发生延迟。这应该起作用:
wait = 10
for i in range(wait):
wait -= 1
print(wait)
[编辑]
啊,非常感谢你的澄清!我相信这就是你想要的:
import time
while True: # Here is your while loop!
wait = 10 # Change this to 900 (seconds) to get 15 minutes.
for i in range(wait+1):
print(wait)
wait -= 1
time.sleep(1) # Delay for one second.
print("Send email here!")
[双重编辑]
哦,你希望发送电子邮件不会阻碍你程序的主要部分!@kenny ostrom所说的在这里是正确的,那么,您希望以某种方式使用线程。下面是每15分钟或900秒发送一封电子邮件的示例。这发生在后台,while循环正在做的任何事情都不会被阻塞或延迟。这应该是你要找的。c:
import threading, time
def send_my_email():
while True:
time.sleep(3) # Every 15 minutes is 900.
print("Send email now saying: {}".format(email_content))
thread = threading.Thread(target=send_my_email)
thread.start()
# Make a background thread and use the function: send_my_email
while True:
# Do anything here. No delays will happen.
for number in range(10, 0, -1):
print(number)
email_content = number*3 # You can modify email content here.
time.sleep(1)
如果你想让任何人理解你的意图,你需要修正缩进。你的示例代码的缩进到处都是。你能不能在不耽误整个计划的情况下再详细说明一下你的意思?你想让你的柜台倒计时还是倒计时?在单独的线程中运行?程序的其余部分是否有可以调用计数器代码的主循环?问题尚不清楚。尝试添加示例输出:\n听起来很简单,但一种方法是围绕多个线程重新设计,其中一个线程可以专用于生成这些计时器事件。不,不会,因为没有时间延迟,所以所有线程都在0.0001秒内计数。。。你自己试试看啊,你在寻找一个倒数计时,每秒钟10,9,8,7,6,5,4,3,2,1,0,然后重复?我已经为你更新了我的答案!c:@依偎也不起作用…@TijmenMeijer我能要求更多的澄清吗?它怎么不起作用?您希望代码执行哪些当前未执行的操作?@依偎我希望我的while循环保持运行,没有任何时间延迟,但在这个循环中,我想设置一个不涉及我的常规循环的计时器。希望你能帮助我。