Python中如何在展示进度条的同时同步显示百分比数值
你原来的代码是初始化时就把两端的0%写死了,只更新中间的进度条块,所以没法同步修改百分比。只要改成每次循环时整行刷新内容,同时计算最新百分比输出即可,推荐用\r回车符直接回到行首覆盖上一次的内容,比用退格符更不容易出错。
适配你原有20格进度条的修改代码如下:
import time # 进度条总格子数,每格对应5%进度 total_blocks = 20 for i in range(total_blocks + 1): # 计算当前百分比 current_percent = i * 5 # 拼接进度条:已填充的█ + 剩余空白格 progress_bar = "█" * i + " " * (total_blocks - i) # \r回到行首覆盖上一行内容,end=''禁止自动换行 print(f"\r{current_percent}%│{progress_bar}│{current_percent}%", end='') time.sleep(0.05) # 进度完成后换行,避免后续输出和进度条共行 print()
如果需要适配任意总任务量,不是刚好20步的场景,可以按比例计算填充格数和百分比,示例如下:
import time # 可自行修改总任务数 total_task = 156 # 进度条显示的总格子数,可自行调整 total_bar_blocks = 20 for step in range(total_task + 1): current_percent = int(step / total_task * 100) filled_blocks = int(step / total_task * total_bar_blocks) progress_bar = "█" * filled_blocks + " " * (total_bar_blocks - filled_blocks) print(f"\r{current_percent}%│{progress_bar}│{current_percent}%", end='') time.sleep(0.01) print()
内容的提问来源于stack exchange,提问作者sadegh
相关产品推荐
相关产品推荐

