You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python打印内容后覆盖当前行,如何实现单行刷新的进度条功能?

单行刷新进度条实现方法

你当前代码逐行输出的原因是print()函数默认在输出内容末尾添加换行符\n,每次输出都会将光标移动到下一行开头。要实现同一行刷新,只需要修改print的两个参数即可:

  • 把end参数设置为\r(回车符),作用是每次输出后将光标移回当前行的开头,下次输出会直接覆盖当前行已有的内容
  • 增加flush=True参数,强制立刻刷新输出缓冲区,避免内容缓存导致进度不实时更新

修改后的完整代码如下:

import time
import random

x = range(101)
for n in x:
    timefluc = random.uniform(0, 1.2)
    time.sleep(timefluc)
    print("{0}%".format(n), end="\r", flush=True)
# 循环结束后主动换行,避免后续输出和100%挤在同一行
print()

补充说明:如果你的使用场景中存在后续输出内容比前面短的情况(比如从100%切换为「执行完成」文本,后者长度更短),可以在输出内容末尾补足够的空格覆盖上一轮的残留内容,比如调整为print("{0}% ".format(n), end="\r", flush=True)即可。

内容的提问来源于stack exchange,提问作者Felipe hellomods

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 06:48:00