2013-11-02 98 views
0

如何在Python中清除/保存當前行?我有一個雙循環,我希望打印內部循環的結果並在每次進入外部循環後保存並顯示此循環的最終結果。我有:清除,更新並保存當前行

import os 
for j in xrange(1,final_step_j): 
    Result=0 
     for k in xrange(1,final_step_k): 
     Result=Result+ j*k 
     os.system('clear') 
     print "current Result for j=%s and k=%s is %s" %(j, k, Result) 

其中os.system('clear')每次運行內循環時都清楚地清除整個頁面。我想每次保存並顯示內部循環的最終結果,並轉到顯示下一輪結果的新行,而前一行最後一行仍然可以在屏幕上看到。

+0

您可以在列表中保存行並在清除屏幕後再次打印所有行。 – furas

回答

1

它並不完美,但你可以嘗試通過下級寫一個回車\r沒有新線stdout方法:

import os 
import sys 

for j in xrange(1,final_step_j): 
    Result=0 
    for k in xrange(1,final_step_k): 
    Result=Result+ j*k 
    # Move back to beginning and print over 
    sys.stdout.write("\rcurrent Result for j=%s and k=%s is %s" %(j, k, Result)) 
    sys.stdout.flush() # Flush without a new line 
    print # Move to next line 

的問題,如果你要打印的線比一個短你已經打印了,在這種情況下你需要更多的填充或者確保你有一個不變的填充量。

基於this answer