2012-12-10 29 views
1

下面給出here如何以這樣的方式在Python中創建輸出,即前面的輸出被覆蓋的描述,我想下面的代碼同一行輸出覆蓋以前的內容不工作(Python 2.7版)

from __future__ import print_function 
import time 

for val in range(10): 
    time.sleep(0.2) 
    print(val, end='\r') 

但根本沒有看到任何輸出。與end=\n它按預期工作(即垂直列中的數字0到9)。我沒有看到任何輸出的原因是什麼?我需要衝洗一些東西嗎?這個操作系統是否依賴於(在Ubuntu Linux上工作)?

回答

0

我想這個流只有在得到'\ n'後纔會被刷新。

看一看這篇文章:Disable output buffering

嘗試,如果當你與-u開始Python的工作。

+0

所以在另一篇文章中的答案實際上是錯誤的? – Alex

+0

它可以與'python -u'一起使用,也可以在print語句之後的代碼中添加一個'sys.atdout.flush()'。 – Alex