使用Python在命令行界面或控制台中显示一个动态的进度条,以展示任务的完成进度。它可以在许多场景中使用,例如:
-
文件下载:当下载一个大文件时,可以使用进度条来显示下载的进度,让用户知道还有多少数据需要下载。
-
数据处理:当处理大量数据时,可以使用进度条来显示处理的进度,让用户知道处理的进程。
-
批量任务:当执行一系列的任务时,可以使用进度条来显示每个任务的完成情况,让用户了解任务的整体进展。
-
训练模型:在机器学习或深度学习中,训练模型可能需要花费很长时间。使用进度条可以让用户了解训练的进度,以及剩余的训练时间。
这种进度条特效可以提供一种视觉上的反馈,让用户感知任务的进度,增加用户体验和交互性。同时,它也可以用于调试和监控,帮助开发人员了解代码的执行进度和性能。
代码:
import time
def hacker_progress_bar(total, prefix='', suffix='', decimals=1, length=100, fill='█'):
"""
进度条特效函数
:param total: 总进度
:param prefix: 进度条前缀
:param suffix: 进度条后缀
:param decimals: 进度小数位数
:param length: 进度条长度
:param fill: 进度条填充字符
"""
def print_progress_bar(iteration):
percent = ("{0:." + str(decimals) + "f}").format(100 * (iteration / float(total)))
filled_length = int(length * iteration // total)
bar = fill * filled_length + '-' * (length - filled_length)
print(f'r{prefix} |{bar}| {percent}% {suffix}', end='r')
if iteration == total:
print()
for i in range(total + 1):
print_progress_bar(i)
time.sleep(0.1) # 模拟效果的延迟
# 示例用法
hacker_progress_bar(100, prefix='Progress:', suffix='Complete', length=50)
定义了一个名为hacker_progress_bar
的函数,用于显示一个进度条特效。
函数的参数包括:
-
total
:总进度,表示需要完成的总任务数量。 -
prefix
:进度条前缀,可以是任意字符串。 -
suffix
:进度条后缀,可以是任意字符串。 -
decimals
:进度小数位数,默认为1,表示保留一位小数。 -
length
:进度条长度,默认为100,表示进度条的总长度。 -
fill
:进度条填充字符,默认为"█",表示用实心方块字符来填充进度条。
函数内部定义了一个名为print_progress_bar
的内部函数,用于打印每个迭代步骤的进度条。该函数的参数为iteration
,表示当前的迭代步骤。
在print_progress_bar
函数内部,首先计算当前进度的百分比,并格式化为指定小数位数的字符串。然后根据当前进度的百分比计算进度条的填充长度,并用填充字符和空格字符构建进度条字符串。最后使用r
进行回车并打印进度条字符串,实现进度条的动态更新。
在主函数中,使用一个循环来模拟进度的增加。每次循环迭代都调用print_progress_bar
函数打印当前的进度条,并通过time.sleep
函数添加延迟,以模拟进度条的动态效果。
最后,调用示例用法hacker_progress_bar(100, prefix='Progress:', suffix='Complete', length=50)
来展示一个进度条,总进度为100,前缀为"Progress:",后缀为"Complete",进度条长度为50。
运行效果:
原文始发于微信公众号(蓝胖子之家):使用Python在命令行写动态进度条
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论