Python打造可视化进度条

进度条在编程中是一种常见的工具,用于显示任务的完成情况 。在 Python/ target=_blank class=infotextkey>Python 中,我们可以通过不同的方法和库来创建进度条,从而提高用户体验和可视化任务进度 。本文将介绍如何在 Python 中使用进度条,并附带详细的示例代码,让你能够即学即用 。

Python打造可视化进度条

文章插图
 
一、tqdm实现进度条1. 基础进度条使用 tqdm 库,我们可以轻松地创建一个基础的文本进度条,用于跟踪任务的完成情况 。
from tqdm import tqdmimport time# 模拟一个耗时任务def time_consuming_task():for _ in tqdm(range(10), desc="Processing"):time.sleep(0.1)# 执行任务time_consuming_task()这段代码演示了如何使用 tqdm 创建一个简单的文本进度条,用于显示任务的处理进度 。效果如下所示:
Python打造可视化进度条

文章插图
2. 进度条定制化tqdm 提供了丰富的选项 , 可以自定义进度条的外观和行为 。以下示例展示了如何添加额外信息和修改外观 。
from tqdm import tqdmimport time# 模拟一个带有额外信息的任务def custom_progress_bar():data = list(range(100))total_items = len(data)with tqdm(total=total_items, desc="Processing", unit="item") as pbar:for item in data:# 模拟任务处理time.sleep(0.1)# 更新进度条pbar.update(1)# 添加额外信息pbar.set_postfix({"Current Item": item})# 执行任务custom_progress_bar()在这个示例中,我们使用 tqdm 的 set_postfix 方法添加了额外的信息,让进度条更具信息量 。如下所示:
Python打造可视化进度条

文章插图
3. 图形化进度条对于需要在图形界面中显示进度条的场景 , tkinter 是一个不错的选择 。以下是一个简单的图形化进度条的例子 。
import tkinter as tkfrom tkinter import ttkimport time# 创建图形化进度条窗口def create_progress_bar():root = tk.Tk()root.title("Graphical Progress Bar")progress = ttk.Progressbar(root, orient="horizontal", length=300, mode="determinate")progress.pack(pady=20)return root, progress# 模拟一个图形化任务def graphical_progress_task(progress_bar):for i in range(1, 101):time.sleep(0.1)progress_bar["value"] = iprogress_bar.update()# 执行任务root, progress_bar = create_progress_bar()graphical_progress_task(progress_bar)root.mAInloop()这个示例展示了如何使用 tkinter 创建一个简单的图形化进度条,通过不同的值更新进度 。
Python打造可视化进度条

文章插图
当涉及不同的进度条库时,Python提供了多种选择 , 每个库都有其独特的特性和适用场景 。让我为你提供一些示例代码,展示如何使用一些常见的库来创建进度条 。
二、Progress 库创建进度条Progress 是一个简单易用的库,让我们看看如何使用它来制作一个基本的进度条:
https://pypi.org/project/progress2/
from progress.bar import ChargingBarimport time# 创建一个基本的进度条def basic_progress_bar():bar = ChargingBar('Processing', max=20)for _ in range(20):time.sleep(0.1)bar.next()bar.finish()# 执行基本进度条basic_progress_bar()这段代码展示了如何使用 Progress 库创建一个简单的充电式进度条,用于跟踪任务的完成情况 。
三、alive-progress 库创建进度条alive-progress 是一个交互式的、活跃的进度条库,让我们看看如何使用它来制作一个动态的进度条:
 
https://pypi.org/project/alive-progress/
 
from alive_progress import alive_barimport time# 创建一个动态的进度条def dynamic_progress_bar():with alive_bar(20, title='Processing') as bar:for _ in range(20):time.sleep(0.1)bar()bar.text('Processing...')# 执行动态进度条dynamic_progress_bar()这段代码展示了如何使用 alive-progress 库创建一个动态的进度条,在任务执行过程中以交互式方式显示进度 。
四、PySimpleGUI 库创建进度条PySimpleGUI 是一个用于创建图形用户界面的库 , 让我们看看如何使用它来制作一个基于 GUI 的进度条:
 
https://pypi.org/project/PySimpleGUI27/
 
import PySimpleGUI as sgimport time# 创建一个基于 GUI 的进度条def gui_progress_bar():layout = [[sg.Text('Processing')],[sg.ProgressBar(20, orientation='h', size=(20, 20), key='progressbar')]]window = sg.Window('Progress Bar', layout)for i in range(20):event, values = window.read(timeout=100)if event == sg.WIN_CLOSED:breakwindow['progressbar'].update(i + 1)time.sleep(0.1)window.close()# 执行基于 GUI 的进度条gui_progress_bar()


推荐阅读