如何在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 :(得分: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。