在Python开发中,有时需要向用户展示一个任务的进度,以提供更好的交互体验。下面我将展示如何使用Python来创建一个简单的控制台进度条。
效果:
代码:
import time
import sys
def print_progress_bar(completed, total, length=50):
progress = int(length * completed / total)
bar = '[' + '=' * progress + '-' * (length - progress) + ']'
percent = round(100.0 * completed / total, 1)
sys.stdout.write(f'\r{bar} {percent}%')
sys.stdout.flush()
# 示例用法
total_steps = 100
for i in range(1, total_steps + 1):
time.sleep(0.1) # 模拟一个任务
print_progress_bar(i, total_steps)
说明:
- 导入
time
和sys
模块。 - 定义
print_progress_bar
函数,它接受当前完成的步骤数completed
、总步骤数total
和进度条长度length
(默认为50)作为参数。 - 在函数内部,根据完成的任务比例计算进度条的当前状态,并格式化输出到控制台。
sys.stdout.flush()
确保进度条立即刷新,而不是等待缓冲区满。- 在示例用法中,我们模拟了一个总步骤为100的任务,并在每次循环中更新进度条。
这个进度条是通过在控制台上重复打印来更新的,使用了 carriage return (\r
) 来回到行首,这样每次打印都会覆盖上一次的打印内容,从而实现动态更新效果。
在你的实际项目中,你可以根据需要调整time.sleep(0.1)
来模拟不同的任务执行时间,或者将这部分替换为你的实际任务代码。