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

Python编写加载进度条时字符一次性全部打印问题求助

Python进度条打印异常问题排查

问题根因

Python标准输出默认采用行缓冲策略,你在调用print()时指定了end = ""没有输出换行符,打印的内容会暂时存放在输出缓冲区中,不会立刻输出到终端。只有当程序运行结束、缓冲区被占满或者手动触发刷新时,才会把所有缓存的内容一次性打印出来,这就是你看到程序先等待几十秒再一次性输出全部-的原因。

修复方案

有两种常用的修复方式,均可实现每2秒打印一个-的预期效果:

  • 方案1:在print参数中添加flush=True,强制每次打印后立刻刷新缓冲区
    调整后代码如下:
    import time
    
    for i in range(20):
      print ("-", end = "", flush=True)
      time.sleep(2)
    
  • 方案2:每次打印完成后手动调用sys.stdout.flush()刷新输出缓冲区
    调整后代码如下:
    import time
    import sys
    
    for i in range(20):
      print ("-", end = "")
      sys.stdout.flush()
      time.sleep(2)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 19:45:03