Python Progressbar 模块
很基本的人类本性使得我们想要知道给定的进程何时完成,已完成的任务占总任务的百分比是多少。这是因为当一个进程正在进行时,我们会变得非常不耐烦,我们只需要等待直到它完成。这是非常可以理解的,因为我们的本性就是保持好奇心,想知道正在发生什么以及何时会发生。因此,我们总是试图找出给定任务将何时完成以及给定任务需要多长时间才能完成。例如,当我们正在下载文件或软件时,我们总是查看剩余多少时间或需要多长时间才能下载完文件。因此,我们可以说,如果我们有给定的时间或给定的百分比,我们将比不知道这些点更不耐烦。有时,文件下载的可视化插图也有助于保持冷静并耐心等待过程完成。这是因为文件下载的可视化插图告诉我们已下载了文件的这么多百分比或还剩下这么多。但实际上,这些可视化插图并非用于下载指示器,而是实际上它们吸引我们的注意力,使下载或等待更加互动。
近年来,可视化插图也变得非常普遍,几乎可以在每个应用程序、网站或软件中见到。因此,我们可以看到这些正在进行的过程的可视化插图(如下载文件、在网站上浏览等)是任何网站、软件或应用程序的重要组成部分。现在,我们大多数人都会认为自己创建这些视频插图将非常困难,需要数百行后端编码。但实际上,这并不完全正确,自己创建这样的可视化插图并不是很难。许多编程语言都为我们提供了可以用来创建这些视频插图的包。像其他编程语言的任何其他方面一样,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 install progressbar
或者,我们也可以使用以下pip命令在我们的系统中安装最新版本的progressbar模块(progressbar2):
pip install progressbar2
在我们系统的提示符shell中编写上述pip命令后,我们必须按下“enter”键,这将启动进度条(或progressbar2)模块的安装过程。一旦该模块的安装过程开始,我们必须等待一段时间,直到pip安装程序安装所有所需的依赖项为止。
正如我们所看到的,通过pip安装程序,我们的系统成功安装了progressbar模块。我们也可以按照相同的安装过程安装progressbar2模块,并写下第二个pip命令(如上所示)。既然我们系统中成功安装了该模块,我们现在可以继续进行progressbar模块的实现部分,并且可以在任何示例程序中使用它的函数了。
Python的progressbar模块:实现
在这部分中,我们将将刚刚安装的progressbar模块导入到示例程序中,以便使用该模块的函数来理解该模块的实现。我们将尝试使用该模块的函数创建一个进度条,并在程序执行时显示进度条。进度条的输出将取决于我们运行示例程序的Python IDE。我们也可以使用progressbar2,因为它是progressbar模块的升级版本,并可以执行使用后者可能执行的所有函数。但是,在本教程中,我们只会将progressbar模块导入到示例程序中,并使用它的函数来理解其实现。
请查看以下示例程序,以了解progressbar模块的实现:
示例: 请查看以下示例程序,我们使用progressbar模块的函数创建了一个进度条:
# Importing the progressbar module
import progressbar as pgr
# Also importing the time module
import time
# Default functions for a progress bar
def animeMaker():
# Creating widget of the progress bar
varWidget = ['Loading: ', pgr.AnimatedMarker()]
# Creating bar from the widget
varBar = pgr.ProgressBar(widgets = varWidget).start()
# Using for loop to loop over the progress bar
for a in range(26):
# Using time module to give break in progress bar
time.sleep(0.5)
# Updating the progress bar
varBar.update(a)
# Showing the progress bar in the output
print("Following is the progress bar created using the progress bar module: ")
# Calling the default function to execute it
animeMaker()
输出:
Following is the progress bar created using the progress bar module:
如我们所见,进度条已被打印并显示在输出中,而输出显示的内容将根据我们运行此示例程序的Python IDE而有所不同。这就是我们可以使用progressbar或progressbar2模块的函数来创建进度条或加载条的方式。
解释: 首先,我们在程序中将progressbar模块导入为pgr。然后,我们还导入time模块以使用该模块的函数来创建时间间隔,同时创建进度条。然后,我们定义了一个名为animeMaker()的默认函数,并在该函数内部使用了progressbar模块的函数来创建进度条。在这个默认函数内部,首先使用progressbar模块的AnimatedMarker()函数创建了一个用于加载条的小部件。然后,我们定义了另一个变量,使用progressbar模块的ProgressBar函数创建了一个加载条。在这个函数内部,我们将小部件变量(varWidget)作为参数传递给定义加载条的小部件。然后,我们在函数中使用了一个for循环,以便它可以持续循环加载条,并在输出中显示一个动画条。在for循环内部,首先使用了sleep()函数来在给定时间间隔(即0.5秒)后显示加载条的状态。然后,我们使用progressbar模块的update()函数来更新加载条,在函数中更新到给定的限制(即在范围26中定义的a)。最后,通过调用animeMaker函数在输出中显示加载条。
结论
我们可以在Python程序中使用progressbar或progressbar2模块的函数来创建加载条或进度条。加载条或进度条的输出将取决于我们运行程序的Python IDE,进度条的动画可能因这些IDE而有所不同。progressbar模块在创建各种动画进度条和加载条方面非常有帮助。