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

Python Sleep进度条异常求助:调用sleeper(10)5秒后失效

解决等待进度条混乱的问题

你的进度条出现混乱的核心原因是sleeper函数中每次循环都会递减seconds参数,导致传入progress的total值持续变化,进度计算逻辑完全错误。比如初始seconds=10,第二次循环时seconds=9,此时count=2、total=9,计算出的百分比会超过20%,后续数值越来越偏离预期,最终导致进度条显示混乱。

修正后的代码

import sys
import time

def progress(count, total, suffix='waiting'):
    bar_len = 60

    filled_len = int(round(bar_len * count / float(total)))

    percents = round(100.0 * count / float(total), 1)
    bar = '=' * filled_len + '-' * (bar_len - filled_len)

    sys.stdout.write('[%s] %s%s ...%s\r' % (bar, percents, '%', suffix))
    sys.stdout.flush()

def sleeper(seconds):
    # 保存原始总时长,避免循环中修改导致计算错误
    total_seconds = seconds
    for i in range(seconds):
        progress(i+1, total_seconds)
        time.sleep(1)

关键修正点

  • 移除sleeper中的seconds -= 1语句,无需修改原始的总时长参数
  • 提前保存total_seconds作为固定的总进度值,确保每次调用progress时total都是初始的总秒数,进度计算逻辑保持一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 00:20:44