1. 需求背景
在开发过程中,特别是在执行耗时较长的任务时,向用户显示任务的进度是非常有用的。这不仅可以提高用户体验,还可以帮助开发者调试和优化代码。本文将介绍如何使用 Python 实现一个简单的任务进度条,并提供一个示例用法。
2. 编写进度条函数
进度条的基本原理是通过计算已完成任务的比例,并将其转换为百分比形式显示。我们可以通过在控制台上动态更新一行文本来实现这一点。Python 的 sys.stdout.write 和 sys.stdout.flush 方法可以帮助我们在同一行上更新输出。
import sys
import time
def progress_bar(iteration, total, length=40):
"""
显示任务进度条
:param iteration: 当前迭代次数
:param total: 总迭代次数
:param length: 进度条的长度
"""
percent = (iteration / total) * 100
filled_length = int(length * iteration // total)
bar = '#' * filled_length + '-' * (length - filled_length)
sys.stdout.write(f'\r[{bar}] {int(percent)}%')
sys.stdout.flush()
3. 示例用法
为了演示如何使用 progress_bar 函数,我们模拟一个耗时较长的任务,例如下载文件或处理大量数据。我们将使用一个简单的循环来模拟任务的进展,并在每次迭代中调用 progress_bar 函数。
# 示例用法
total_steps = 100
for step in range(total_steps + 1):
progress_bar(step, total_steps)
time.sleep(0.1) # 模拟耗时操作
运行上述代码后,你将在控制台上看到一个动态更新的进度条,如下所示:
image.png