18.tqdm模块

文章目录

        • 描述
        • 用法
          • 自动控制运行
          • 手动控制运行
        • 参数解析
        • reference

描述

Tqdm 是一个快速,可扩展的Python进度条,可以在 Python 长循环中添加一个进度提示信息,用户只需要封装任意的迭代器 tqdm(iterator)。

用法

自动控制运行
  • 最基本的用法,将tqdm() 直接包装在任意迭代器上。
text = ""
for char in tqdm(["a", "b", "c", "d"]):
    text = text + char
    time.sleep(0.5)
  • trange(i) 是对tqdm(range(i)) 特殊优化过的实例。
for i in trange(100):
    time.sleep(0.1)
  • 如果在循环之外实例化,可以允许对tqdm() 手动控制。
pbar = tqdm(["a", "b", "c", "d"])
for char in pbar:
    pbar.set_description("Processing %s" % char)
手动控制运行
  • 用with 语句手动控制 tqdm() 的更新。
with tqdm(total=100) as pbar:
    for i in range(10):
        pbar.update(10)
  • 或者不用with语句,但是最后需要加上del或者close() 方法。
pbar = tqdm(total=100)
for i in range(10):
    pbar.update(10)
pbar.close()
  • 结合pandas使用
import  pandas as pd
import numpy as  np
 
df = pd.DataFrame(np.random.randint(0, 100, (10000000, 6)))
tqdm.pandas(desc="my bar!")
df.progress_apply(lambda x: x**2)
  • tqdm.update()方法用于手动更新进度条,对读取文件之类的流操作非常有用。

参数解析

class tqdm(object):
  """
  Decorate an iterable object, returning an iterator which acts exactly
  like the original iterable, but prints a dynamically updating
  progressbar every time a value is requested.
  """

  def __init__(self, iterable=None, desc=None, total=None, leave=True,
               file=None, ncols=None, mininterval=0.1,
               maxinterval=10.0, miniters=None, ascii=None, disable=False,
               unit='it', unit_scale=False, dynamic_ncols=False,
               smoothing=0.3, bar_format=None, initial=0, position=None,
               postfix=None):
  • desc : str, optional。进度条的前缀
  • miniters : int, optional。迭代过程中进度显示的最小更新间隔。
  • unit : str, optional。定义每个迭代的单元。默认为"it",即每个迭代,在下载或解压时,设为"B",代表每个“块”。
  • unit_scale : bool or int or float, optional。默认为False,如果设置为1或者True,会自动根据国际单位制进行转换 (kilo, mega, etc.) 。比如,在下载进度条的例子中,如果为False,数据大小是按照字节显示,设为True之后转换为Kb、Mb。
  • total:总的迭代次数,不设置则只显示统计信息,没有图形化的进度条。设置为len(iterable),会显示黑色方块的图形化进度条。

reference

https://blog.csdn.net/zkp_987/article/details/81748098
https://blog.csdn.net/qq_40666028/article/details/79335961

你可能感兴趣的:(python千招百式,python,python)