📜  pthon - 进度条 - Python (1)

📅  最后修改于: 2023-12-03 15:18:43.349000             🧑  作者: Mango

Python进度条

在编写长时间运行的程序时,添加一个进度条可以让用户更好地了解程序正在执行哪些任务,并在等待程序完成时提供更好的用户体验。Python提供了各种进度条库,允许程序员轻松地在他们的应用程序中添加进度条。

以下是一些Python进度条的库:

tqdm

tqdm 是一个用Python编写的快速,可扩展的进度条,可用于任何迭代.

from tqdm import tqdm
import time

for i in tqdm(range(10)):
    time.sleep(1)

在使用tqdm时,只需将需要添加进度条的迭代器作为参数传递给tqdm即可。tqdm将自动计算迭代器中的元素数量,并显示进度条。

progressbar

progressbar 是一个Python模块, 提供了一组类来生成进度条以及实现计时器.

import time
import progressbar

bar = progressbar.ProgressBar(maxval=10, \
    widgets=[progressbar.Bar('=', '[', ']'), ' ', progressbar.Percentage()])
bar.start()
for i in range(10):
    time.sleep(1) # 任务的时间消耗
    bar.update(i+1)
bar.finish()

这里,progressbar将创建一个进度条,其中“widgets”参数提供了在进度条中显示的内容,如状态标志、百分比等。当你要调用迭代器的计数器时,你就可以通过调用“bar.update(i + 1)”来更新进度条。

alive-progress

alive-progress 是一个动态的Python进度条.他依赖在终端运行的系统和模块来在屏幕上动态地显示进度条.

from alive_progress import alive_bar
import time

with alive_bar(10) as bar:
    for i in range(10):
        time.sleep(1)
        bar()

alive-progress相对简单,只要在需要添加进度条的任务周围添加一个with-block。 它的进度条时常是动态的。

PySimpleGUI

PySimpleGUI 是 Python 的界面库,可以添加进度条到应用程序中。

import PySimpleGUI as sg
import time

max_val = 10

layout = [[sg.Text('Progress Bar Test')],
          [sg.ProgressBar(max_val, orientation='h', size=(20, 20), key='progressbar')],
          [sg.Button('Start'), sg.Button('Cancel')]]

window = sg.Window('Window Title', layout)

progress_bar = window['progressbar']

while True:
    event, values = window.read(timeout=10)
    if event == 'Cancel' or event == sg.WIN_CLOSED:
        break
    elif event == 'Start':
        for i in range(max_val + 1):
            time.sleep(1)
            progress_bar.UpdateBar(i)
window.close()

在这个例子中,PySimpleGUI的ProgressBar是一种图形界面控件,它可以轻松地添加到GUI窗口中。在这个例子中,我们创建了一个Layout,包括按钮和一个进度条。 在事件循环中,我们监视事件并更新进度条,直到任务完成或用户点击“Cancel”。

以上是几个常用的Python进度条库。通过这些库,程序员可以轻松地在他们的Python脚本中添加进度条,提高程序的可读性和用户体验。