2016-12-27 316 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」,而不是添加換行符。