打印后清除输出
Clearing an output after it's printed
有没有办法在打印后清除输出,例如,如果我们为倒计时编写代码,打印的值会立即被清除,而另一个值会打印在与前一个输出相同的位置。
import time
a = [5,4,3,2,1,0]
for i in a:
time.sleep(0.2)
print(i,end="",)
此处输出打印在同一行,但有没有办法清除输出以在与前一个输出相同的位置打印下一个值,就像在加载屏幕或倒计时中一样(如 'cls' 在命令提示符下,但作为一个进程,而程序仍然是 运行).
非常感谢您的帮助。
刷新输出并打印回车 return 字符以将光标置于行首:
import time
a = [5,4,3,2,1,0]
print() # start on a new line
for i in a:
time.sleep(0.2)
print(i, end="\r", flush=True)
print()
请注意,这不会清除该行,因此您可能也想这样做:
for i in [500] + a:
time.sleep(0.2)
print('3[K', i, sep='', end="\r", flush=True)
其中 3[K
是 ANSI escape sequence 清除行。
像这样。使用 \r 作为 print() 调用的结束参数。
import time
for x in range(5, -1, -1):
print(f'3[KCounting down {x}', end='\r')
time.sleep(1)
print()
最后一个 print() 是将光标移动到下一行,否则 shell 将覆盖最后一行,\033[K 是清除该行的 ANSI 转义序列。
有没有办法在打印后清除输出,例如,如果我们为倒计时编写代码,打印的值会立即被清除,而另一个值会打印在与前一个输出相同的位置。
import time
a = [5,4,3,2,1,0]
for i in a:
time.sleep(0.2)
print(i,end="",)
此处输出打印在同一行,但有没有办法清除输出以在与前一个输出相同的位置打印下一个值,就像在加载屏幕或倒计时中一样(如 'cls' 在命令提示符下,但作为一个进程,而程序仍然是 运行).
非常感谢您的帮助。
刷新输出并打印回车 return 字符以将光标置于行首:
import time
a = [5,4,3,2,1,0]
print() # start on a new line
for i in a:
time.sleep(0.2)
print(i, end="\r", flush=True)
print()
请注意,这不会清除该行,因此您可能也想这样做:
for i in [500] + a:
time.sleep(0.2)
print('3[K', i, sep='', end="\r", flush=True)
其中 3[K
是 ANSI escape sequence 清除行。
像这样。使用 \r 作为 print() 调用的结束参数。
import time
for x in range(5, -1, -1):
print(f'3[KCounting down {x}', end='\r')
time.sleep(1)
print()
最后一个 print() 是将光标移动到下一行,否则 shell 将覆盖最后一行,\033[K 是清除该行的 ANSI 转义序列。