这是一个代码示例,用于在控制台的相同光标位置打印一些数字,而无需从位置移动字符。
代码示例
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("\n") # move the cursor to the next line
问题
如果我们需要在同一位置一遍又一遍地打印整个表格,而不创建新的表格行,那么这种方法是否有效
static
。
我的目标是使底部给出的代码能够工作,与code example
上面共享的相同。
在控制台上打印表格时,表格的标题不得更改,但传递的值(行元素)必须在相同的单元格位置动态更改,迭代传递的值。
下面是我的目标代码。
from prettytable import PrettyTable
from sys import stdout
from time import sleep
t = PrettyTable(['Name', 'Age'])
lis = [['Alice', 25],['Alice', 20],['Man', 20]]
for x in lis:
t.add_row(x)
print(t, end='\r')
t.clear_rows()
sleep(1)
stdout.write("\n")
在这里,迭代print(t, end='\r')
就是每次将表格打印到新行上。
我希望看到为第一次迭代(for 循环)打印的表,被下一次迭代的表完全取代,依此类推。