python检查时间没有while循环

时间:2012-08-26 19:10:49

标签: python time while-loop task

我正在尝试制作一个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睡眠,但它仍然冻结。

1 个答案:

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