试想一下,当你使用Python开发脚本时,下载某些文件时肯定会时不时地看一下进度条。在写代码的时候使用进度条可以方便的观察任务的处理状态,或者需要多长时间才能完成。如果有一个加载屏幕或进度条指示剩余时间或使用百分比的剩余进度,会让人更加放心。我们可以使用Python编写进度条。在本教程中,我们将了解如何使用Python在终端中创建进度条。先决条件对于本教程,我们将使用Ubuntu来运行我们的脚本。Ubuntu是一个基于Linux的操作系统。Python已经安装在Ubuntu中,因此无需再次安装它们。按照本教程,您应该不会遇到任何基于Debian的操作系统的问题。如果您使用的是Windows操作系统,请确保安装了Python并设置了环境变量,因为您需要从终端运行脚本。使用Python的进度条Python是一种高级编程语言。并且可以用来实现几乎任何事情。Python中有许多很酷的库来创建进度条。在本教程中,我们将看到其中的一些:tqdmalive_progressaloyaspin1,TQDMTqdm是一个易于使用的库。特别是对于循环。它为循环提供了一个进度条。只需两行代码,您就完成了。安装点击终端,执行以下命令:linuxmi@linuxmi/home/linuxmi/www.linuxmi.com?pip3installtqdmtqdm的使用非常简单,只需将其添加到for循环中,如下所示:fromtqdmimporttqdmimporttimeforiintqdm(range(20),desc='tqdm()ProgressBar'):time.sleep(0.1)#Herearesometasks#Herearesomeoperations#Linuxfanswww.linuxmi.comsoutput:desc这里是其中之一许多参数用来描述进度条。例如,在获取文件时可能是“正在下载”。tqdm适用于任何平台(Linux、Windows、Mac、FreeBSD、NetBSD、Solaris/SunOS)、任何控制台或GUI,也可用于IPython/Jupyter笔记本。Tqdm可以在代码中以多种方式使用。您应该查看官方文档以获取更多代码片段和功能。2.ALIVE_PROGRESS这是另一个带有炫酷动画的进度条库。Alive_progress非常棒,因为在这里我们可以完全控制进度条,并且可以使其动态化。它比tqdm好很多,因为它有更多的特性,我们有不同的动画可供选择。要安装,请单击终端并执行以下命令:linuxmi@linuxmi/home/linuxmi/www.linuxmi.com?pip3installalive-progressuse如果您有从互联网下载文件的脚本,这里有一个示例代码:fromalive_progressimportalive_barimporttimeforiinrange(3):withalive_bar(100,ctrl_c=False,title=f'download{i}')asbar:foriinrange(100):time.sleep(0.02)bar()其中100是进度的最大长度。ctrl_c=False表示在执行进度条中的代码时,CTRL+C不起作用(CTRL+C用于在终端终止任务)。当一项重要任务正在运行并且您不希望用户终止该任务时,此选项特别有用。默认情况下为真。title是进度条的标题。输出:我们还可以修改进度条的主题如下:fromalive_progressimportalive_barimporttimeforiinrange(3):withalive_bar(100,ctrl_c=False,title=f'download{i}',bar='halloween',spinner='twirls')asbar:foriinrange(100):time.sleep(0.02)bar()的输出:可以从许多可用主题中选择。您可以同时展示它们,并选择最适合您的一个:fromalive_progress.stylesimportshowtimeshowtime()输出以下内容:访问GitHub存储库了解更多详细信息。3.HaloHalo与其说是加载屏幕,不如说是一个微调器。当操作时间较少时可以使用它。要安装,请单击终端并执行以下命令:linuxmi@linuxmi/home/linuxmi/www.linuxmi.compath.dirname(os.path.abspath(__file__))))fromhaloimportHalosuccess_message='加载成功'failed_message='加载失败'unicorn_message='加载独角兽'spinner=Halo(text=success_message,spinner='dots')尝试:spinner.start()time.sleep(1)spinner.succeed()spinner.start(failed_message)time.sleep(1)spinner.fail()spinner.start(unicorn_message)time.sleep(1)spinner.stop_and_persist(符号='
