<<返回python首页 python

《Python 应用案例》

Python实现不同的进度条

进度条是计算机在处理任务时显示处理任务的速度/完成度/剩余未完成任务量的大小,一般以长方形条状显示。是用在计算机处理较大任务时给用户的一种进度提示。在本节中将使用Python,Python自带的库与函数,以及第三方的库来实现实现这个功能。

Python实现不同的进度条

Python代码实现

普通进度条

在代码迭代运行中可以自己进行统计计算,并使用格式化字符串输出代码运行进度

import sys
import time
def progress_bar():
    for i in range(1, 101):
        print("\r", end="")
        print("Download progress: {}%: ".format(i), "▋" * (i // 2), end="")
        sys.stdout.flush()
        time.sleep(0.05)
progress_bar()

带时间进度条

导入time模块来计算代码运行的时间,加上代码迭代进度使用格式化字符串来输出代码运行进度

import time
scale = 50
print("执行开始".center(scale // 2,"-"))
start = time.perf_counter()
for i in range(scale + 1):
    a = "*" * i
    b = "." * (scale - i)
    c = (i / scale) * 100
    dur = time.perf_counter() - start
    print("\r{:^3.0f}%[{}->{}]{:.2f}s".format(c,a,b,dur),end = "")
    time.sleep(0.1)
print("\n"+"执行结束".center(scale // 2,"-"))

tqdm库

这是一个专门生成进度条的工具包,可以使用pip在终端进行下载,当然还能切换进度条风格

!pip3 install tqdm -i https://pypi.tuna.tsinghua.edu.cn/simple

用法1

import time
from tqdm import tqdm

for i in tqdm(range(10)):
     #do something
     time.sleep(1)
     pass

用法2

alist = list('letters')
bar = tqdm(alist)
for letter in bar:
    bar.set_description(f"Now get {letter}")

为进度条添加描述

import time
from tqdm import tqdm

t = tqdm(["a", "b", "c", "d"])
for char in t:
    # 设置描述
    t.set_description("Processing {args}".format(args="test"))
    time.sleep(1)

总结

Python中还有其它的方式来实现进度条功能,本节仅仅是介绍几种常用的实现,可以便捷得嵌入到Python的项目工程中进行使用。

移动端设备除iPad Pro外,其它移动设备仅能阅读基础的文本文字。
建议使用PC或笔记本电脑,浏览器使用Chrome或FireFox进行浏览,以开启左侧互动实验区来提升学习效率,推荐使用的分辨率为1920x1080或更高。
我们坚信最好的学习是参与其中这一理念,并致力成为中文互联网上体验更好的学练一体的IT技术学习交流平台。
您可加QQ群:575806994,一起学习交流技术,反馈网站使用中遇到问题。
内容、课程、广告等相关合作请扫描右侧二维码添加好友。

狐狸教程 Copyright 2021

进入全屏