清除,更新并保存当前行

时间:2013-11-02 04:30:28

标签: python loops printing newline clear

如何在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')清楚地清除整个页面。我想保存并每次显示内循环的最终结果,然后转到一个新行,显示下一轮的结果,同时前一个最后一行仍然在屏幕上可见。

1 个答案:

答案 0 :(得分: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