python学习笔记之--进度条

2022-03-07  本文已影响0人  itsenlin

进度条比较常见于程序安装、文件拷贝、系统编译等地方,在python中有很多库可以实现进度条,也可以自己实现进度条

进度条相关的模块

progress模块

progress模块里面实现了多种进度条样式

每种进度条样式的使用方法都类似,下面给出两个实例

import time
from progress.bar import (IncrementalBar,ChargingBar, FillingSquaresBar)

def incrementalBar_progress():
    mylist = [1, 2, 3, 4, 5, 6, 7, 8]
    bar = IncrementalBar("进度条", max = len(mylist))
    for item in mylist:
        bar.next()
        time.sleep(0.1)
    bar.finish()

def chargingBar_progress():
    bar = ChargingBar("进度条1", max = 100)
    for item in range(100):
        bar.next()
        time.sleep(0.1)
    bar.finish()

if __name__ == '__main__':
    incrementalBar_progress()
    chargingBar_progress()

输出如下


进度条_progress

progressbar模块

实例

import time
import progressbar

def progressbar_progress():
    p = progressbar.ProgressBar()
    for i in p(range(100)):
        '''code'''
        time.sleep(0.05)

if __name__ == '__main__':
    progressbar_progress()

显示效果如下


progressbar

alive_progress模块

实例

import time
from alive_progress import alive_bar

def alive_progress():
    with alive_bar(len(range(100))) as bar:
        for item in range(100):
            bar()
            '''code'''
            time.sleep(0.05)

if __name__ == '__main__':
    alive_progress()

显示效果如下


alive_progress

tqdm模块

实例

import time
from tqdm import tqdm

def tqdm_progress():
    for i in tqdm(range(1, 60)):
        ''' 假设code执行0.1s '''
        time.sleep(0.1)

if __name__ == '__main__':
    tqdm_progress()

显示效果如下


tqdm

不使用已有模块实现进度条

在网上看到的两个例子,搬运过来以做学习,感谢网友的分享

import sys
import time

def normal_progress():
    for i in range(1, 101):
        print("\r", end = "")
        print("进度:{}%:".format(i), "#"*(i//2), end="")
        sys.stdout.flush()
        time.sleep(0.05)
    print("")

def normal_progress_time():
    t = 60
    print("*****带时间的进度条****")
    start = time.perf_counter()
    for i in range(t + 1):
        finsh = "#" * i
        need_do = "_" * (t - i)
        progress = (i/t)*100
        dur = time.perf_counter() - start
        print("\r{:^3.0f}%[{}->{}]{:.2f}s".format(progress, finsh, need_do, dur), end="")
        time.sleep(0.05)
    print("")

if __name__ == '__main__':
    normal_progress()
    normal_progress_time()

显示效果如下


normal_progress
normal_progress_time
上一篇 下一篇

猜你喜欢

热点阅读