2016-12-27 314 views
2

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

到目前为止,我已经试过这

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

但这让应用睡眠在“T”秒,但秒钟行不更新自己

countdown(10) 

所需的输出:

Duration : 10s 

1秒后,它应该是

Duration : 9s 

呀,问题是前一行Duration : 10s我不得不抹去。有没有办法做到这一点?

回答

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) 
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,而不是打印和fl​​ush()输出打印下一个输出。

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