为什么我的打印功能会延迟?

时间:2016-10-30 03:16:34

标签: python python-3.5

我真的很难理解为什么它不像我认为的那样工作。

修改:对于任何混淆,很抱歉,这是第一个不会执行的printprint('The alarm will sound at ' + result, flush=True)

if time.strftime('%H:%M') == result为True之前没有任何事情发生。无论我在哪里放置打印功能,它都不会运行,直到满足上述要求。即使在while循环内,也不会运行。

#! /usr/bin/python

import argparse
import time
import datetime

def alarm(set_time):

    set_time = str(set_time)[:2]+ ':' + str(set_time)[2:]
    alarm_time = datetime.datetime.strptime(set_time,'%H:%M').strftime('%H:%M')
    return alarm_time

def main():

    parser = argparse.ArgumentParser()
    parser.add_argument('wake', help='The time for the alarm to sound', type=str)
    args = parser.parse_args()

    result = alarm(args.wake)
    print('The alarm will sound at ' + result, flush=True)

    while True:

        if time.strftime('%H:%M') == result:
            print('Wake up')
            return
        else:
            time.sleep(1)
            pass

if __name__ == '__main__':
    main()

1 个答案:

答案 0 :(得分:0)

我建议您在下方进行更改。它工作正常。

import argparse
import time
import datetime

def main():

    parser = argparse.ArgumentParser()
    parser.add_argument('wake', help='The time for the alarm to sound', type=str)
    args = parser.parse_args()


    time_part = args.wake.split(':')

    d = datetime.datetime.now()

    wake_time = datetime.datetime(d.year, d.month, d.day, int(time_part[0]), int(time_part[1]), 0, 0)


    print('The alarm will sound at ' + args.wake, flush=True)

    while True:

        if datetime.datetime.now() > wake_time:
            print('Wake up')
            return
        else:
            time.sleep(1)
            pass

if __name__ == '__main__':
    main()