如何在 Python 中的多个终端行上重写

How to rewrite on several terminal lines in Python

我正在尝试从 Python3 脚本在我的终端上重写两行。
让我们举一个简单的例子:

import time

for n in range(1, 10):
    print(n)
    print(n*2)
    time.sleep(1)

当我启动我的脚本时,我想要这样的输出:

bla@bla:/tmp$ python3 test.py
1
2

然后一秒钟后(睡眠之后)我希望这 2 个数字像这样“被新输出替换”:

bla@bla:/tmp$ python3 test.py
2
4

等等...

我测试了什么?

你有什么解决办法吗?感谢您的帮助。

这取决于您使用的终端仿真器,但您可能希望输出 ANSI 'cursor up' 代码,这会将光标向上移动,为下一次迭代做好准备。您想要的代码是“ESCAPE [ A”

import time

for n in range(1, 10):
    print(n)
    print(n*2)
    time.sleep(1)
    print("3[A3[A", end="")

ESCAPE 是字符 27,即八进制的 033。 注意 end="" 停止光标再次向下移动...