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

4

1 回答 1

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

问题是如果您正在打印的行比您已经打印的行短,在这种情况下您需要有更多的填充或确保您有恒定的填充量。

基于这个答案

于 2013-11-02T04:46:57.413 回答