2013-12-20 37 views
0

我想輸出文本到stdout,覆蓋以前的文本,例如Python的覆蓋操作新行不表現爲預期

for i in range(12): 
    print i 

但每一次我取代了以前的價值,而不是出現在新行 從看着不少與它似乎有這樣做,可能是其中最簡單的幾個方面是相似的問題,先前的文章(有關Python 3.X)

for i in range(12): 
    print(i,end="\r") 
用逗號

有時在結束的印刷聲明,someti mes不是。然而,如果沒有逗號,我得到任何輸出,並用逗號,我得到

(None,) 
(None,) 
(None,) 
... 

這是不是與我的終端吧?無論以前發佈的哪個解決方案適用於我嘗試的問題,我都會得到類似的結果。 感謝您的幫助!

+1

那麼..你在哪個版本上? – aIKid

回答

2

如果您在終端中執行此操作,您將看不到任何輸出,因爲for循環結束速度太快,無法看到輸出更改。循環完成後,終端的提示將覆蓋輸出。

試試這個:

>>> for i in range(9999999): 
...  print(i, end="\r") 

我surprprised省略逗號,當你沒有得到一個語法錯誤。

+2

我想當OP討論最後放一個逗號時,他的意思是'print(i,end =「\ r」),'。這將構造一個包含'print'調用結果的1元組元組,並且由於這是在交互式終端中,所以元組被打印。 – user2357112

+0

這很棒,這就是發生的事情。謝謝!此外,是的,我的意思是打印(我,結束=「\ R」),'在末尾的逗號' – user3119998