我正在尝试制作一个python程序,在某些时候会弹出一个窗口框,提醒我必须做点什么。问题是,while循环使python崩溃,有没有办法让python检查没有while循环的时间?
while 1:
gettime = time.strftime("%H:%M", time.localtime())
gettime.replace(':','.')
if gettime in tasks.keys():
tasks[gettime] = dowat
ctypes.windll.user32.MessageBoxW(0,u'ALERT!', dowat, 0)
time.sleep(10)
SendKeys.SendKeys("""
{LWIN}
l
""")
我尝试在循环结束时进行python睡眠,但它仍然冻结。
答案 0 :(得分:1)
你的方式错了......你不需要一个while循环。您需要做的是获取当前时间并计算时差。然后你只需要调用time.sleep 一次。
这是我用过的一些旧的python代码,我用过类似的东西。它周围的东西我必须清理/删除,所以它可能无法100%工作。
import time
import datetime
CurrentTime = datetime.datetime.now()
exec_time = "18:00"
val = datetime.datetime.strptime(exec_time, "%H:%M")
val = datetime.datetime(year=CurrentTime.year, month=CurrentTime.month, day=CurrentTime.day, hour=val.hour, minute=val.minute)
if (val > CurrentTime):
print "val = ", val
val = datetime.datetime(year=CurrentTime.year, month=CurrentTime.month, day=CurrentTime.day, hour=val.hour, minute=val.minute) - CurrentTime #Calculate dif.
time.sleep(val.seconds) #Sleep to next event