Python实现实时显示进度条的六种方法
这篇文章主要为大家介绍了Python实现实时显示进度条,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助<BR>
目录
相信大家对进度条一定不陌生了,比如在我们安装python库的时候可以看到下载的进度,此外在下载文件时也可以看到类似的进度条,比如下图这种:
![](https://img-blog.csdnimg.cn/img_convert/79af8a681cf6ae00bd85f261edc5949f.png)
应用场景:下载文件、任务计时等
今天辰哥就给大家分享Python的6种不同的实现实时显示处理进度的方式,文中每一种方式都附带一个案例,并提供官方文档,供大家学习,自定义去修改。
第1种:普通进度条
利用打印功能print进行实时刷新显示
1 2 3 4 5 | for i in range ( 1 , 101 ): print ( "\r" , end = "") print ( "进度: {}%: " . format (i), "▓" * (i / / 2 ), end = "") sys.stdout.flush() time.sleep( 0.05 ) |
![](https://img-blog.csdnimg.cn/img_convert/cc601e8811ba3920672579cc6f89dbf5.gif)
第2种:带时间的普通进度条
第2种同样通过print进行打印进度条,不过还加入了time时间显示,显示进度过程中所需要的时间
1 2 3 4 5 6 7 8 9 10 | t = 60 print ( "**************带时间的进度条**************" ) start = time.perf_counter() for i in range (t + 1 ): finsh = "▓" * i need_do = "-" * (t - i) progress = (i / t) * 100 dur = time.perf_counter() - start print ( "\r{:^3.0f}%[{}->{}]{:.2f}s" . format (progress, finsh, need_do, dur), end = "") time.sleep( 0.05 ) |
![](https://img-blog.csdnimg.cn/img_convert/2c406d3d745b606f2cc50e27c1081dfc.gif)
第3种:tqdm库
tqdm是专门用于进度条的一个python库,详细的用法可以参考下方官方文档
tqdm · PyPI
1 2 3 4 5 6 7 | from tqdm import tqdm for i in tqdm( range ( 1 , 60 )): """ 代码 """ # 假设这代码部分需要0.05s,循环执行60次 time.sleep( 0.05 ) |
![](https://img-blog.csdnimg.cn/img_convert/81b766692315312d9c86478360be290c.gif)
![](https://img-blog.csdnimg.cn/img_convert/e13b71e531a3950826323c9b969f2be0.png)
第4种: alive_progress库
alive_progress是一个动态的实时显示进度条库,详细的用法可以参考下方官方文档
alive-progress · PyPI
1 2 3 4 5 6 7 8 9 10 | from alive_progress import alive_bar # 假设需要执行100个任务 with alive_bar( len ( range ( 100 ))) as bar: for item in range ( 100 ): # 遍历任务 bar() # 显示进度 """ 代码 """ # 假设这代码部分需要0.05s time.sleep( 0.05 ) |
![](https://img-blog.csdnimg.cn/img_convert/bf369f438770e99b2c9f5b1d0e72c263.gif)
第5种:PySimpleGUI库
PySimpleGUI也是一种动态进度条库,该库是自带GUI界面(基于PyQt,Tkinter等),详细的用法可以参考下方官方文档
PySimpleGUI · PyPI
1 2 3 4 5 6 7 8 9 | import PySimpleGUI as sg count = range ( 100 ) for i, item in enumerate (count): sg.one_line_progress_meter( '实时进度条' , i + 1 , len (count), '-key-' ) """ 代码 """ # 假设这代码部分需要0.05s time.sleep( 0.05 ) |
![](https://img-blog.csdnimg.cn/img_convert/7ee62e8cd9777a5a5ca73dc89e43fad3.gif)
第6种:progressbar库
progressbar · PyPI
1 2 3 4 5 6 7 8 9 | import progressbar p = progressbar.ProgressBar() # # 假设需要执行100个任务,放到ProgressBar()中 for i in p( range ( 100 )): """ 代码 """ # 假设这代码部分需要0.05s time.sleep( 0.05 ) |
![](https://img-blog.csdnimg.cn/img_convert/121c8639ba7559006c54a10150753549.gif)
总结
文中介绍了这6种实现实时进度条方式,并且都提供一个案例。对于Python库方式的也附带了官方文档,便于大家学习。