鱼编程 2021-08-23 15:41 采纳率: 66.7%
浏览 48
已结题

关于#python#进度条的问题,请各位专家解答!

#遇到问题的现象

#返回: Finish!!! Python |====□| 5/5 (100%)1 to go
#原本应该返回: Finish!!! Python |====□| 5/5 (100%)

#问题相关代码片

import time,sys

def get_progress_bar(content,current_progress,overall_progress,size=1,stylelist=["=","□","-"]):
    # 参数 content,current_progress,overall_progress,size
    # 计算
    remaining_progress=overall_progress-current_progress
    current_length=int(current_progress*size-1)*stylelist[0]
    current_location=stylelist[1]
    remaining_length=int(remaining_progress*size)*stylelist[2]
    percentage=int((current_progress/overall_progress)*100)

    string = ""
    if current_progress == overall_progress:
        string = " Finish!!! {0} |{1}{2}| {5}/{5} (100%)"
    else:
        string = "Working... {0} |{1}{2}{3}| {4}/{5} ({6}%) {7} to go"
    string = string.format(content,current_length,current_location,remaining_length,current_progress,overall_progress,percentage,remaining_progress)
    return (string)

def progressbar(count, prefix="", times = 0.2, ridesize = 1, stylelist=["=","□","-"], file=sys.stdout):

    it = range(1,count+1)
    file.write(get_progress_bar(prefix,0,count-1,ridesize,[stylelist[0],stylelist[2],stylelist[2]]))
    for item in it:
        time.sleep(times)
        file.write("\r")
        file.write(get_progress_bar(prefix,item,count,ridesize,stylelist))
    file.write("\n")

progressbar(count=5, prefix="Python", times = 0.5, ridesize = 1)
#运行结果
Working...  Python |-----| 0/5 (0%)5 to go
Working...  Python |□----| 1/5 (20%)4 to go
Working...  Python |=□---| 2/5 (40%)3 to go
Working...  Python |==□--| 3/5 (60%)2 to go
Working...  Python |===□-| 4/5 (80%)1 to go
 Finish!!! Python |====□| 5/5 (100%)1 to go
<--一次只会显示一行--!>
#报错内容
无报错内容

#操作环境、软件版本等相关信息
操作环境:Visual Studio Code
软件版本:1.59.1

  • 写回答

2条回答 默认 最新

  • Pliosauroidea 2021-08-23 15:49
    关注

    \r不换行,会从上一行的开头进行覆盖,你覆盖之后上一行的1 to go没有被完全覆盖,所以后面还有to go
    你在完成对应的字符串后面加几个空格就没问题了
    有帮助望采纳

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月31日
  • 已采纳回答 8月23日
  • 修改了问题 8月23日
  • 创建了问题 8月23日

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。