使用Python在命令行写动态进度条

admin 2024年3月7日00:09:57评论6 views字数 1642阅读5分28秒阅读模式

使用Python在命令行写动态进度条

使用Python在命令行界面或控制台中显示一个动态的进度条,以展示任务的完成进度。它可以在许多场景中使用,例如:

  1. 文件下载:当下载一个大文件时,可以使用进度条来显示下载的进度,让用户知道还有多少数据需要下载。

  2. 数据处理:当处理大量数据时,可以使用进度条来显示处理的进度,让用户知道处理的进程。

  3. 批量任务:当执行一系列的任务时,可以使用进度条来显示每个任务的完成情况,让用户了解任务的整体进展。

  4. 训练模型:在机器学习或深度学习中,训练模型可能需要花费很长时间。使用进度条可以让用户了解训练的进度,以及剩余的训练时间。

这种进度条特效可以提供一种视觉上的反馈,让用户感知任务的进度,增加用户体验和交互性。同时,它也可以用于调试和监控,帮助开发人员了解代码的执行进度和性能。



代码:

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在命令行写动态进度条

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年3月7日00:09:57
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   使用Python在命令行写动态进度条http://cn-sec.com/archives/2553554.html

发表评论

匿名网友 填写信息