python中实时的自动收报机

时间:2013-03-15 17:45:58

标签: python time clock ticker

我想在python中实时获取时间。 这里的想法是我一次又一次地做一组函数,但我想在再次执行之前给出10分钟的时间间隔。例如:

现在我这样做

lst = [1,2,3,4,5]

while lst:

    do something
    lst.pop(0)
    time.sleep(600)

这将等待10分钟并再次循环。

我想实时打印,剩下的秒数再次启动循环。 即我想打印

等待600秒
   等待500秒等等。

最好的方法就是改变每秒不打印“等待”的数字。

2 个答案:

答案 0 :(得分:0)

首先,我认为你必须在一个单独的线程中做一个自动收报机,并在其他线程中加入“做某事”。要更新刻度线,您可以使用Clock.tick。

答案 1 :(得分:0)

您可以使用这样的功能打印倒计时:

>>> def countdown(seconds):
...     while seconds:
...         sys.stdout.write("\rsleeping for {0}".format(seconds))
...         seconds -= 1
...         time.sleep(1)

\r字符是没有换行符的回车符 - 每次执行输出文本的行时,它都会覆盖之前的内容。)所以你的代码看起来更像:

while lst:

    # do something
    lst.pop(0)
    countdown(600)