python实现进度条progress-bar的4种方法

实现进度条progress-bar的4种方法:不同的实现方法,可能调用不同的第三方库(progressbar,tqdm),下面介绍以下方法。

(一):
1. python程序中使用time模块可以让程序休眠
2. timesleep(t) 参数t是推迟执行的秒数

import time
for i in range(0, 101, 2):
    time.sleep(0.1)  #线程推迟指定时间运行,0.1秒代表休眠100毫秒
    num = i // 2
    if i == 100:
        process = "\r[%3s%%]: |%-50s|\n" % (i, '|' * num)
    else:
        process = "\r[%3s%%]: |%-50s|" % (i, '|' * num)
    print(process, end='', flush=True)

运行结果如下:
在这里插入图片描述

(二):
通过for循环打印进度条效果

import sys, time
print("正在下载......")
for i in range(11):#通过for循环输出进度条效果
    if i != 10:
        sys.stdout.write("==")
    else:
        sys.stdout.write("== " + str(i*10)+"%/100%")
        sys.stdout.flush()
    time.sleep(0.5)#sleep用来控制输出时间
print(" " + "下载完成")

运行结果如下:
在这里插入图片描述

(三)
1. 在处理迭代多次耗时较长的程序时,可用tqdm模块来显示程序进度条
2. tqdm使用方法:
(1)tqdm.tqdm(可迭代对象),括号中的可迭代对象可以是list,tuple等。
(2)tqdm.trange ,trange同python中的range,只是trange在循环的时候会输出打印进度条

from time import sleep
from tqdm import tqdm
for i in tqdm(range(20)):#也可改写为for i in trange(20):
	sleep(0.5)#sleep用来控制输出时间

运行结果如下:
在这里插入图片描述

(四)
这里要使用到第三方库progressbar
cmd下载:pip install progressbar

import time
from progressbar import *
progress = ProgressBar()
for i in progress(range(1000)):
	time.sleep(0.01)#sleep用来控制输出时间

运行结果如下:
在这里插入图片描述
在这里插入图片描述

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是使用 PyQt5 和 tqdm 模块实现的更新进度条示例代码: ```python import sys from PyQt5.QtWidgets import QApplication, QWidget, QProgressBar, QPushButton from PyQt5.QtCore import QThread, pyqtSignal from tqdm import tqdm class ProgressThread(QThread): progress_signal = pyqtSignal(int) def __init__(self, total): super().__init__() self.total = total def run(self): for i in tqdm(range(self.total)): self.progress_signal.emit(i) class ProgressBar(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setGeometry(100, 100, 300, 100) self.setWindowTitle('Progress Bar') self.progress_bar = QProgressBar(self) self.progress_bar.setGeometry(20, 20, 260, 20) self.start_button = QPushButton('Start', self) self.start_button.setGeometry(20, 60, 75, 23) self.start_button.clicked.connect(self.start_progress) self.stop_button = QPushButton('Stop', self) self.stop_button.setGeometry(100, 60, 75, 23) self.stop_button.clicked.connect(self.stop_progress) self.show() def start_progress(self): self.thread = ProgressThread(100) self.thread.progress_signal.connect(self.update_progress) self.thread.start() def stop_progress(self): self.thread.terminate() def update_progress(self, value): self.progress_bar.setValue(value) if __name__ == '__main__': app = QApplication(sys.argv) bar = ProgressBar() sys.exit(app.exec_()) ``` 这个示例程序创建了一个简单的窗口,包含一个进度条和两个按钮。当用户点击“Start”按钮时,程序将启动一个后台线程来执行进度条更新任务。当用户点击“Stop”按钮时,程序将停止后台线程。进度条更新任务使用 tqdm 模块来显示进度条。通过使用 pyqtSignal,我们可以在后台线程和主线程之间进行通信,从而实现进度条的更新。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值