如何在Python中优雅地使用进度条?

2020-07-20 11:52:05 浏览数 (2)

tqdm在Arabic阿拉伯语言中是进度"progress"的意思。使用tqdm模块可以通过进度条的方式非常优雅地显示循环的进度。

通过简单地把tqdm 嵌套在可迭代对象上iterable object, 即可实现监控循环的进度条。

进度条默认显示在标准错误流,即sys.stderr文件流。

下面是一些简单到愚蠢的范例,向您展示了tqdm模块的优雅迷人。

范例1:基本范例

代码语言:javascript复制
import time
from tqdm import tqdm
for i in tqdm(range(100)):
    time.sleep(0.1)
                                                         

范例2:增加描述

代码语言:javascript复制
import time
from tqdm import tqdm
pbar = tqdm(["a", "b", "c", "d"])for char in pbar:
    time.sleep(0.25)
    pbar.set_description("Processing %s" % char

范例3:手动更新

代码语言:javascript复制
import time
from tqdm import tqdm
with tqdm(total=100) as pbar:
    for i in range(10):
        time.sleep(0.1)
        pbar.update(10)

Appendix:手工实现循环进度条

代码语言:javascript复制
import sys,time

# 进度条函数
def progress_bar(num,total):
    rate = float(num)/total
    ratenum = int(100*rate)
    r = 'r[{}{}]{}%'.format('*'*ratenum,' '*(100-ratenum),ratenum)
    sys.stdout.write(r)
    sys.stdout.flush()

i,n = 0,100
for i in range(n):
    time.sleep(0.1)
    progress_bar(i 1,n)

以上就是Python中使用进度条的简单介绍,赶紧copy代码来试试吧。

0 人点赞