2012-02-10 46 views
2

作爲我的腳本的一部分,我將打印到控制檯。我真的很想打印到同一行,但動態。例如打印到相同的控制檯行但動態地

喜歡的東西

1, 2, 

1, 2, 3, 

1, 2, 3, 4 

我曾嘗試:

logging.info("Deleting rows..."); 
for i in range(0, sizeOfFeed): 
    logging.info("\%d" % i); 

將這個少了點

\0 
\1 
\2 

它是動態的,但在不同的線路。

任何提示

+1

我不明白的問題。你有什麼可打印的東西,控制打印動態的功能是什麼? – inspectorG4dget 2012-02-10 16:23:30

回答

3
from sys import stdout 
from time import sleep 
for i in range(1,20): 
    stdout.write("\r%d" % i) 
    stdout.flush() 
    sleep(1) 
stdout.write("\r \r\n") # clean up 

\ r是一個特殊的字符:回車,在老打字機是將光標定位在開始行

+0

謝謝。我注意到必須使用stdout並打印,日誌記錄轉到下一行。無論如何要讓這個工作與日誌記錄模塊? – dublintech 2012-02-10 16:56:01

+1

我認爲你不能,但你可以使用stderr進行日誌記錄 – tyranitar 2012-02-10 17:20:44

+1

日誌可以打印到stdout,stderr,files ...甚至所有的同時 - 你只需要添加適當的處理程序 – 2016-07-29 20:34:19

4

存儲要打印的行。打印一個\r然後行,然後刷新。改變線條,然後重複。

+0

適用於我(儘管OP將不得不小心不打印結尾的換行符)。 – DSM 2012-02-10 16:27:12