Python Progressbar 模块

2025年3月17日 | 阅读 7 分钟

人类的本能是想知道一个给定的过程何时会完成,以及任务完成了多少百分比。这是因为我们在一个过程进行时会变得非常没有耐心,我们只能等待它完成。这是非常可以理解的,因为我们的天性就是对正在发生的事情和发生的时间感到好奇。因此,我们总是试图找出给定的任务何时会完成,以及给定的任务需要多长时间才能完成。例如,当我们下载一个文件或软件时,我们总是会查看还剩多少时间,或者下载文件需要多长时间。因此,我们可以说,如果我们知道给定的时间或给定的百分比,我们就会比不知道这些信息时更没有耐心。有时,下载文件的可视化说明也有助于保持冷静和耐心,直到过程完成。这是因为下载文件的可视化说明告诉我们,文件已下载了多少百分比,或者还剩多少。但实际上,这些可视化说明并非旨在成为下载指示器,它们实际上能吸引我们的注意力,并使下载或等待过程更具互动性。

如今,可视化说明也变得非常普遍,几乎在所有应用程序、网站或软件中都能看到它们。因此,我们可以看到,这些正在进行的进程的可视化说明(如下载文件、等待网站加载等)是任何网站、软件或应用程序的重要组成部分。现在,我们大多数人会认为,自己创建这些视频说明会非常困难,需要数百行后端代码。但实际上,事实并非如此,自己创建这样的视频说明并不难。许多编程语言都提供了我们可以使用的包来创建这些视频说明。与编程语言的任何其他方面一样,Python 在这方面也处于领先地位。具体来说,Python 提供了许多包,如 tqdm、progressbar 等,我们可以在程序中使用它们来创建进度条。在 Python 提供的所有进度条包中,本教程只介绍 progressbar 模块。我们将通过将其导入示例程序来理解 Python 的 progressbar 模块并在此模块上进行工作。

Python Progressbar 模块简介

Progressbar 是一个 Python 模块,它提供了许多函数,我们可以使用这些函数为正在进行的进程创建可视化说明,以帮助我们缓解感到的不耐烦。progressbar 模块有许多内置函数,我们可以在 Python 程序中使用它们来创建正在进行的进程和进程完成时间的可视化说明。该模块允许我们为正在进行的进程创建进度条,以便我们知道进程已完成多少百分比以及需要多长时间才能完成。我们在游戏应用程序、加载屏幕中通常看到的进度条或加载条可以使用该模块的函数创建。这种加载条表明启动应用程序或游戏所需的资源正在从系统的主内存或应用程序服务器导入。

在本教程中,我们将使用 Python 的 progressbar 模块创建一个加载条或进度条。我们将在示例程序中使用此模块来理解其实现。

Python Progressbar 模块:安装

Python 的 progressbar 模块不是 Python 的内置包,这意味着它需要一个安装过程才能将该模块安装到我们的系统中。由于该模块在安装 Python 源代码时并不自带,因此如果我们想使用该模块的函数执行操作,则必须首先确保该模块已成功安装在我们的系统中。如果 progressbar 尚未在我们的系统中,我们有多种安装方法可以使用,可以将 progressbar 模块安装到我们的系统中,之后我们才能在示例程序中使用该模块的函数。在我们系统中安装 progressbar 模块的最简单方法之一是使用 pip 安装程序。

我们将使用 pip 安装程序方法将 progressbar 模块安装到我们的系统中,要使用此方法安装 progressbar 模块,我们必须首先在系统的命令提示符终端中输入以下命令:

或者,我们也可以使用以下 pip 命令在我们的系统中安装最新版本的 progressbar 模块(progressbar2):

在系统的提示符 shell 中输入上述 pip 命令后,我们必须按“回车”,这将启动 progressbar(或 progressbar2)模块的安装过程。一旦该模块的安装过程开始,我们就必须等待一段时间,直到 pip 安装程序安装了该模块所需的所有依赖项。

Python Progressbar Module

正如我们所见,借助 pip 安装程序,progressbar 模块已成功安装在我们的系统中。我们也可以按照相同的安装过程安装 progressbar2 模块,并输入第二个 pip 命令(如上所述)。现在,由于 progressbar 模块已成功安装在我们的系统中,我们可以继续进行 progressbar 模块的实现部分,并且现在我们可以在任何示例程序中使用它的函数。

Python Progressbar 模块:实现

在本部分,我们将把刚刚安装的 progressbar 模块导入示例程序,以使用该模块的函数来理解该模块的实现。我们将尝试使用该模块的函数创建一个进度条,并在程序执行时在输出中显示进度条。进度条的输出将取决于我们运行示例程序的 Python IDE。我们也可以使用 progressbar2,因为它是 progressbar 模块的升级版本,并且执行了使用后者可以执行的所有功能。但是,在本教程中,我们将只把 progressbar 模块导入示例程序,并使用它的函数来理解其实现。

请看下面的示例程序,以了解 progressbar 模块的实现。

示例:请看下面的示例程序,我们使用 progressbar 模块的函数创建了一个进度条。

输出

Following is the progress bar created using the progress bar module:

Python Progressbar Module

正如我们所见,进度条已打印并显示在输出中,显示的输出将根据我们运行此示例程序的 Python IDE 而有所不同。这就是我们如何使用 progressbar 或 progressbar2 模块的函数来创建进度条或加载条。

解释:首先,我们将 progressbar 模块导入程序并命名为 pgr。之后,我们还将 time 模块导入程序,以便使用该模块的函数在创建进度条时创建延时。然后,我们定义了一个名为 animeMaker() 的默认函数,并在该函数中使用 progressbar 模块的函数来创建进度条。在此默认函数内部,我们首先使用 progressbar 模块的 AnimatedMarker() 函数创建了一个用于加载条的组件。之后,我们定义了另一个变量来使用 progressbar 模块的 ProgressBar 函数创建条。在此函数内部,我们以 widget 变量 (varWidget) 作为参数来定义加载条的组件。之后,我们在函数中使用了一个 for 循环,以便它可以连续循环显示加载条,并在输出中显示一个动画条。在 for 循环内部,我们首先使用 sleep() 函数,在给定的时间间隔(即 0.5 秒)后显示加载条的状态。然后,我们使用 progressbar 模块的 update() 函数将输出中的加载条更新到函数中给定的限制,即 a,我们在 26 的范围内定义了它。最后,我们通过调用 animeMaker 函数在输出中显示了加载条。

结论

我们可以在 Python 程序中使用 progressbar 或 progressbar2 模块的函数来创建加载条或进度条。加载条或进度条的输出将取决于我们运行程序的 Python IDE,并且进度条的动画可能会根据这些 IDE 而有所不同。progressbar 模块在创建所有这些类型的动画进度条和加载条方面非常有帮助。