当我们处理一些耗时的任务时,为了让用户不感到无聊和失去耐心,我们需要制作一些动态的进度条来让用户感到任务正在进行中。Python中有很多种方法来实现这一目标,本文将介绍6种Python运行进度条效果的实现代码。
1. 最简单的Python进度条示例
最简单的Python进度条示例可以通过字符串拼接方式实现。代码如下:
import time
for i in range(101):
print('\r' + '进度:[{}{}] {}%'.format('#' * i, ' ' * (100 - i), i), end='')
time.sleep(0.1)
代码说明:
'\r'
表示回车符,它可以将光标移动到行首;end=''
表示不换行,让进度条在同一行显示;format()
方法用于字符串拼接,其中'#' * i
表示用#
字符来组成进度条已完成的部分,而' ' * (100 - i)
则表示用空格来组成进度条未完成的部分。
2. 制作基于tqdm的Python进度条
tqdm是一个Python进度条库,它可以在控制台里为for循环和其他迭代器添加进度条。
安装tqdm库的方式很简单,只需要在命令行中输入pip install tqdm
即可完成安装。安装完成后,可以运行以下代码:
from tqdm import tqdm
import time
for i in tqdm(range(101)):
time.sleep(0.1)
以上代码使用了tqdm的封装函数,可以在控制台中看到一个类似于进度条的实现效果。
3. 制作基于progressbar的Python进度条
progressbar是一个Python方便的进度条库,提供了多种进度条效果。
安装progressbar库的方式很简单,只需要在命令行中输入pip install progressbar2
即可完成安装。安装完成后,可以运行以下代码:
import progressbar
import time
bar = progressbar.ProgressBar(widgets=['进度: ', progressbar.Percentage(), ' ', progressbar.Bar(marker='*', left='[', right=']'), ' ', progressbar.Timer(), ' ', progressbar.ETA(), ' '])
for i in bar(range(101)):
time.sleep(0.1)
以上代码使用了progressbar库的ProgressBar
类,可以在控制台中看到进度条的实现效果。
4. 制作基于alive-progress的Python进度条
alive-progress是一个用于Python的进度条库,它提供了多种可定制的进度条效果和用法。
安装alive-progress库的方式很简单,只需要在命令行中输入pip install alive-progress
即可完成安装。安装完成后,可以运行以下代码:
from alive_progress import alive_bar
import time
with alive_bar(101) as bar:
for i in range(101):
time.sleep(0.1)
bar()
以上代码使用了alive-progress库的alive_bar
函数,可以在控制台中看到进度条的实现效果。
5. 制作基于rich的Python进度条
rich是一个Python的格式化输出库,提供了多种进度条效果和丰富的文本样式。
安装rich库的方式很简单,只需要在命令行中输入pip install rich
即可完成安装。安装完成后,可以运行以下代码:
from rich.progress import track
import time
for i in track(range(101)):
time.sleep(0.1)
以上代码使用了rich库的track
函数,可以在控制台中看到进度条的实现效果。
6. 制作基于PyQt5的Python进度条
PyQt5是一个Python的GUI编程框架,它可以创建出漂亮的图形用户界面和进度条效果。
安装PyQt5库的方式很简单,只需要在命令行中输入pip install PyQt5
即可完成安装。安装完成后,可以运行以下代码:
import sys
from PyQt5.QtWidgets import QApplication, QDialog, QProgressBar
from PyQt5.QtCore import Qt
import time
class ProgressBar(QDialog):
def __init__(self, parent=None):
super(ProgressBar, self).__init__(parent)
self.progressBar = QProgressBar()
self.progressBar.setMinimum(0)
self.progressBar.setMaximum(100)
self.progressBar.setValue(0)
self.progressBar.setAlignment(Qt.AlignCenter)
self.layout = QVBoxLayout()
self.layout.addWidget(self.progressBar)
self.setLayout(self.layout)
def setProgress(self, value):
self.progressBar.setValue(value)
if __name__=="__main__":
app = QApplication(sys.argv)
bar = ProgressBar()
bar.show()
for i in range(101):
time.sleep(0.1)
bar.setProgress(i)
app.processEvents()
sys.exit(app.exec_())
以上代码使用了PyQt5来创建一个自定义的进度条界面,可以在窗口中看到进度条的实现效果。
以上就是六种Python运行进度条效果的实现代码。Python进度条的实现方法和库可以为我们的任务提供视觉化的反馈和快速的进度查看,是我们日常开发中非常有用的工具。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:六种酷炫Python运行进度条效果的实现代码 - Python技术站