我正在 python 中执行代码,并希望通过重写输出上的当前行来更新我的状态。例子:import timeprint("1 a a a", end="\r")time.sleep(1) #placeholder for doing stuffprint("2 a a a", end="\r")time.sleep(1) #placeholder for doing stuffprint("3 a a a", end="\r")time.sleep(1) #placeholder for doing stuffprint("BBBB")print("c")现在这段代码的输出是BBBBa ac如何更改我的代码以获得以下输出?BBBBc谢谢。
1 回答
一只萌萌小番薯
TA贡献1795条经验 获得超7个赞
\r
只移动光标;它本身不会删除文本,它只提供覆盖现有文本的机会。
几乎您尝试的任何操作都将取决于终端,但通常您使用的是使用ANSI 转义序列的终端。一种这样的序列可用于清除当前行。
import time
print("\x1b[K1 a a a", end="\r")
time.sleep(1) #placeholder for doing stuff
print("\x1b[K2 a a a", end="\r")
time.sleep(1) #placeholder for doing stuff
print("\x1b[K3 a a a", end="\r")
time.sleep(1) #placeholder for doing stuff
print("\x1b[KBBBB")
print("c")
\x1b[K清除从当前光标位置到当前行末尾的内容。
类似的库ncurses可用于独立于终端的屏幕处理。
添加回答
举报
0/150
提交
取消