gpt4 book ai didi

6行Python代码实现进度条效果(Progress、tqdm、alive-progress​​​​​​​和PySimpleGUI库)

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 34 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章6行Python代码实现进度条效果(Progress、tqdm、alive-progress​​​​​​​和PySimpleGUI库)由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

在项目开发过程中加载、启动、下载项目难免会用到进度条,如何使用Python实现进度条呢?

这里为小伙伴们分享四种Python实现进度条的库:Progress库、tqdm库、alive-progress库和PySimpleGUI库,其中前三个是文本进度条库,最后一个是可以在GUI上运行的进度条.

1、Progress库 。

Progress是一种文本进度条库,库详细说明参加GitHub.

使用库之前需要进行安装,pip指令如下所示:

?
1
pip install progressbar2

实现总耗时1S的进度条 ,代码如下所示:

?
1
2
3
4
5
6
7
8
import time
import progressbar
p = progressbar.ProgressBar()
N = 10
# 加上进度,就是将range(N)放到ProgressBar()中
for i in p( range (N)):
   #每次延时0.1S
   time.sleep( 0.1 )

效果如下所示:

6行Python代码实现进度条效果(Progress、tqdm、alive-progress​​​​​​​和PySimpleGUI库)

还可以设置为中文提示,代码如下所示:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import time
import progressbar
 
 
def custom_len(value):
   # These characters take up more space
   characters = {
     '进' : 2 ,
     '度' : 2 ,
   }
 
   total = 0
   for c in value:
     total + = characters.get(c, 1 )
 
   return total
 
 
bar = progressbar.ProgressBar(
   widgets = [
     '进度: ' ,
     progressbar.Bar(),
     ' ' ,
     progressbar.Counter( format = '%(value)02d/%(max_value)d' ),
   ],
   len_func = custom_len,
)
for i in bar( range ( 10 )):
   time.sleep( 0.1 )

效果如下所示:

6行Python代码实现进度条效果(Progress、tqdm、alive-progress​​​​​​​和PySimpleGUI库)

2、tqdm库 。

tqdm库消耗资源很低,每次迭代大约60ns(gui = True时为80ns),并且已针对性能下降进行了单元测试。完善的ProgressBar具有800ns / iter的开销,库详细说明参加GitHub.

使用库之前需要进行安装,pip指令如下所示:

?
1
pip install tqdm

实现总耗时1S的进度条 ,代码如下所示:

?
1
2
3
4
5
6
import time
from tqdm import tqdm
from tqdm._tqdm import trange
N = 10
for i in tqdm( range (N)):
   time.sleep( 0.1 )

效果如下所示:

6行Python代码实现进度条效果(Progress、tqdm、alive-progress​​​​​​​和PySimpleGUI库)

不仅如此, tqdm库在实现进度条的同时还可以遍历迭代的对象,做到高效率工作,例如遍历列表["a", "b", "c", "d"]的同时实现进度条,代码如下所示:

?
1
2
3
4
5
6
7
8
from tqdm import tqdm
import time
 
text = ""
for char in tqdm([ "a" , "b" , "c" , "d" ]):
   time.sleep( 0.1 )
   text = text + char
print (text)

效果如下所示:

6行Python代码实现进度条效果(Progress、tqdm、alive-progress​​​​​​​和PySimpleGUI库)

3、alive-progress库 。

alive-progress库是一种具有动态效果的智能进度条,库详细说明参加GitHub.

使用库之前需要进行安装,pip指令如下所示:

?
1
pip install alive - progress

实现总耗时10S的动态效果进度条 ,代码如下所示:

?
1
2
3
4
5
6
7
8
from alive_progress import alive_bar
import time
items = range ( 10 )         # retrieve your set of items
with alive_bar( len (items)) as bar:  # declare your expected total
   for item in items:        # iterate as usual
     # process each item
     bar()            # call after consuming one item
     time.sleep( 1 )

效果如下所示:

6行Python代码实现进度条效果(Progress、tqdm、alive-progress​​​​​​​和PySimpleGUI库)

4、PySimpleGUI库 。

PySimpleGUI库是基于Tkinter、Remi、wxPython和PyQt库GUI库,我们可以基于它实现在GUI中添加进度条,当然这只是抛砖引玉,小伙伴们可以使用自己喜爱的GUI库实现进度条设计,库详细说明参加GitHub.

使用库之前需要进行安装,pip指令如下所示:

?
1
pip install pysimplegui

实现总耗时10S的动态GUI效果进度条 ,代码如下所示:

?
1
2
3
4
5
6
import PySimpleGUI as sg
import time
items = range ( 10
for i, item in enumerate (items):
  sg.one_line_progress_meter( 'Progress Meter' , i + 1 , len (items), '-key-' )
  time.sleep( 1 )

效果如下所示:

6行Python代码实现进度条效果(Progress、tqdm、alive-progress​​​​​​​和PySimpleGUI库)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.

原文链接:https://blog.csdn.net/m0_38106923/article/details/103814795 。

最后此篇关于6行Python代码实现进度条效果(Progress、tqdm、alive-progress​​​​​​​和PySimpleGUI库)的文章就讲到这里了,如果你想了解更多关于6行Python代码实现进度条效果(Progress、tqdm、alive-progress​​​​​​​和PySimpleGUI库)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com