首页 > 解决方案 > 如何在 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

然后一秒钟后(在睡眠之后)我希望这两个数字被“替换为新输出”,如下所示:

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

等等...

我测试了什么?

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

标签: python-3.xterminal

解决方案


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

import time

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

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


推荐阅读