学习在Python中使用进度条,介绍4种不同的库(命令行和UI)

百般思念 提交于 2019-12-31 11:39:13

进度条很棒

进度条是流程完成所需时间的直观表示。它们使您不必担心进程是否挂起或尝试预测代码的运行情况。您可以直观地实时看到脚本的进展情况!

如果您以前从未考虑过或使用过进度条,则很容易假设它们会给您的代码增加不必要的复杂性,并且难以维护。事实与事实相去甚远。在仅几行代码中,我们将看到如何在我们的命令行脚本以及PySimpleGUI UI中添加进度条。

使用Progress

第一个要审查的python库是Progress。
您需要做的就是定义您希望进行的迭代次数,钢筋的类型,并在每次迭代时让钢筋知道。

import time
from progress.bar import IncrementalBar
mylist = [1,2,3,4,5,6,7,8]
bar = IncrementalBar('Countdown', max = len(mylist))
for item in mylist:
    bar.next()
    time.sleep(1)
bar.finish()

任何效果都去官网去查看文档吧:

pypi:https://pypi.org/project/progress
GitHub: https://github.com/verigak/progress/

使用tqdm

接下来,我们的评论是tqdm库。
适用于Python和CLI的快速,可扩展的进度栏
我们已经看到了与以前的库非常相似的两行内容,我们可以介绍一个progres栏。在设置方面只有一点点差异:

import time
from tqdm import tqdm
mylist = [1,2,3,4,5,6,7,8]
for i in tqdm(mylist):
    time.sleep(1)

Github: https://github.com/tqdm/tqdm

使用Alive Progress

顾名思义,该库尝试使进度条生效。它比我们之前看到的进度条多了一些动画。在代码方面,它非常相似:

from alive_progress import alive_bar
import time
mylist = [1,2,3,4,5,6,7,8]
with alive_bar(len(mylist)) as bar:
    for i in mylist:
        bar()
        time.sleep(1)

GitHub: https://github.com/rsalmei/alive-progress

使用PySimpleGUI的图形进度条

按照到目前为止所看到的相同精神,我们可以添加一行代码以在命令行脚本中获得图形化的进度条。

import PySimpleGUI as sg
import time
mylist = [1,2,3,4,5,6,7,8]
for i, item in enumerate(mylist):
    sg.one_line_progress_meter('This is my progress meter!', i+1, len(mylist), '-key-')
    time.sleep(1)

仅需几行代码,您就可以在python脚本中实现进度条!没什么太复杂的,您不必再猜测脚本的运行情况了!

Reference:
https://towardsdatascience.com/learning-to-use-progress-bars-in-python-2dc436de81e5

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!