在Python中,实现一行上显示刷新,可以使用回车符r
、使用ANSI转义序列、使用外部库tqdm等方法。 其中,使用回车符r
是最常见和简单的方法,它在每次输出新内容之前,将光标移回行首,从而覆盖前一条输出。以下将详细介绍这种方法。
一、使用回车符r
回车符r
是一个控制字符,它将光标移到当前行的起始位置。结合标准输出sys.stdout
,可以在同一行刷新显示内容。
import sys
import time
for i in range(101):
sys.stdout.write(f'rProgress: {i}%')
sys.stdout.flush()
time.sleep(0.1)
在上述代码中,sys.stdout.write('rProgress: {i}%')
每次都将光标移回行首,并覆盖前一次的输出。sys.stdout.flush()
确保输出立即反映到终端,而不是缓存起来。
二、使用ANSI转义序列
ANSI转义序列是一系列控制字符,常用于控制终端输出样式。它们也可以用于在同一行上刷新输出。
import time
for i in range(101):
print(f'