Python中的实时CountDown计时器

时间:2016-12-27 15:15:12

标签: python

正如标题所说,我想在python中创建一个实时倒数计时器

到目前为止,我已尝试过这个

import time
def countdown(t):
    print('Countdown : {}s'.format(t))
    time.sleep(t)

但是,这让应用程序可以睡觉。秒,但行中的秒数不会自行更新

countdown(10)

期望的输出:

Duration : 10s

1秒后,它应该是

Duration : 9s

是的,问题是我必须删除的前一行Duration : 10s。有没有办法做到这一点?

2 个答案:

答案 0 :(得分:1)

只需这样做:

import time
import sys

def countdown(t):
    while t > 0:
        sys.stdout.write('\rDuration : {}s'.format(t))
        t -= 1
        sys.stdout.flush()
        time.sleep(1)

countdown(10)

导入sys并在打印下一个输出之前使用sys.stdout.write而不是print和flush()输出。

注意:在字符串前面使用回车符“\ n”,而不是添加换行符。

答案 1 :(得分:0)

我从这个帖子得到了很多帮助:remove last STDOUT line in Python

import time

def countdown(t):
    real = t
    while t > 0:
        CURSOR_UP = '\033[F'
        ERASE_LINE = '\033[K'
        if t == real:
            print(ERASE_LINE + 'Duration : {}s'.format(t))
        else:
            print(CURSOR_UP + ERASE_LINE + 'Duration : {}s'.format(t))
        time.sleep(1)
        t -= 1

countdown(4)