使用 print 删除 python 中的当前行

我正在 python 中执行代码,并希望通过重写输出上的当前行来更新我的状态。例子:


import time


print("1 a a a", end="\r")

time.sleep(1) #placeholder for doing stuff

print("2 a a a", end="\r")

time.sleep(1) #placeholder for doing stuff

print("3 a a a", end="\r")

time.sleep(1) #placeholder for doing stuff

print("BBBB")

print("c")

现在这段代码的输出是


BBBBa a

c

如何更改我的代码以获得以下输出?


BBBB

c

谢谢。


MMTTMM
浏览 105回答 1
1回答

一只萌萌小番薯

\r只移动光标;它本身不会删除文本,它只提供覆盖现有文本的机会。几乎您尝试的任何操作都将取决于终端,但通常您使用的是使用ANSI 转义序列的终端。一种这样的序列可用于清除当前行。import timeprint("\x1b[K1 a a a", end="\r")time.sleep(1) #placeholder for doing stuffprint("\x1b[K2 a a a", end="\r")time.sleep(1) #placeholder for doing stuffprint("\x1b[K3 a a a", end="\r")time.sleep(1) #placeholder for doing stuffprint("\x1b[KBBBB")print("c")\x1b[K清除从当前光标位置到当前行末尾的内容。类似的库ncurses可用于独立于终端的屏幕处理。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python