tqdm 简介及正确的打开方式

查遍了网上资料,发现绝大中文的讲解全都是一手带过,还称详细,真是醉了,于是有该文,也算给自己做个笔记

1. 什么是tqdm?

tqdm是一个快速的,易扩展的进度条提示模块,官方网站点击这里

但是为什么要取名为这样呢,官方上说:

tqdm derives from the Arabic word taqaddum (تقدّم) which can mean “progress,” and is an abbreviation for “I love you so much” in Spanish (te quiero demasiado).

所以呢,tqdm其实本身就有进度的意思,另外在西班牙语中还有I love you so much的意思,由此看来,作者应该是个语言大家呢

2. tqdm的安装

tqdm不是python的标准库,但安装很简单,直接使用pip即可,当然为了减少墙带来的麻烦,可以指定镜像源,关于pip镜像源的更换,可以查看这篇文章

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

或者,如果你使用Anaconda:

conda install -c conda-forge tqdm

3. 三大使用方式

  • 基于迭代类型

    # 向tqdm中传入迭代类型即可
    from tqdm import tqdm
    import timetext = ""
    for char in tqdm(["a", "b", "c", "d"]):time.sleep(0.25)text = text + char
    

    效果如下:

  • 手动更新进度

    # 使用with语句来控制tqdm的更新
    with tqdm(total=100) as pbar:for i in range(10):time.sleep(0.01)pbar.update(1)  # 每次更新的多少# 当然也可以不用with,将tqdm赋值给一个变量
    pbar = tqdm(total=100)
    for i in range(100):time.sleep(0.1)pbar.update(10)
    pbar.close()  # !! 注意这样使用之后必须调用del 或者close方法删除该变量
    

    效果如下:

  • 在命令行中使用

    # 将输出的结果内容通过管道传送给 tqdm
    time find . -name '*.py' -type f -exec cat \{} \; | tqdm | wc -l
    

    效果如下:

    命令行使用的更多参数可见官网

4. tqdm.tqdm 的使用方式

官方中对该模块的讲解甚多,这里也着重讲解

  • 参数

iterable=None

  • iterable
  • 可选
  • 装饰进度条,如果为空,需要手动进行更新

desc=None

  • str
  • 可选
  • 进度条的前面的提示

total=None

  • int 或者 float

  • 可选

  • 迭代元素的多少

    • 如果没有指定,如果可以,使用len(iterable)代替
    • 如果是float(“inf”),只显示统计的基本信息
    • 如果参数gui为True,并且该参数需要后续更新,则初始化为一个任意大的正数,如9e9

leave=True

  • bool
  • 可选
  • 如果True,显示所有的进度条,如果是None,只显示第一个进度条

file=None

  • io.TextIOWrapper 或者 io.StringIO
  • 可选
  • 指定输出的路径

ncols=None

  • int

  • 可选

  • 输出信息的宽度

    • 指定了,动态改变进度条的宽度
    • 未指定,使用环境的宽度

mininterval=0.1

  • float
  • 可选
  • 最小进度显示更新间隔

maxinterval=10.0

  • float
  • 可选
  • 最大进度显示更新间隔

miniters=None

  • int 或者 float

  • 可选

  • 在迭代中显示最小进度的间隔

    • 如果为0,并且指定dynamic_miniters,会自动的调整到mininterval
    • 如果>0,跳过指定数目的迭代

ascii=None

  • bool 或者 str
  • 可选
  • 如果没有指定或者为False,使用平滑块(默认),否则使用ascii字符,指定字符的时候长度需大于2

disable=False

  • bool
  • 可选
  • 是否禁用整个进度条,如果是None,在non-tty上禁用

unit='it'

  • str
  • 可选
  • 将用于定义每个迭代的单元的字符串

unit_scale=False

  • bool 或 int 或 float
  • 可选
  • 如果为1或为真,则迭代次数将自动减少/缩放,并在国际单一性系统标准之后添加一个度量前缀(kilo、mega等)[默认值:False]。如果有任何其他非零数,将按比例总计和n。

dynamic_ncols=False

  • bool
  • 可选
  • 设置为True之后,ncols相当于无效

smoothing=0.3

  • float

  • 可选

  • 以指数型增长的速度进行增长

    • 0~1
    • gui模式下无效

bar_format=None

  • str

  • 可选

  • 自定义进度条字符格式,可能会影响性能

    • 具体见官网

initial=0

  • int 或 float
  • 可选
  • 初始计数值

position=None

  • int
  • 可选
  • 指定偏移量,从0开始

postfix=None

  • dic

  • 可选

  • 在进度条后指定额外的信息

    • 也可调用函数set_postfix实现

unit_divisor=1000

  • float
  • 可选
  • 除非unit_scale=True,否则忽略

write_bytes=None

  • bool
  • 可选
    • 如果None并且文件未指定,字节将用Python 2编写
    • 如果为真,也将写入字节
    • 其他情况下,将默认为unicode。

lock_args=None

  • tuple
  • 可选
  • 获取中间输出

gui=False

  • bool

  • 可选

  • 内部参数,使用tqdm.gui.tqdm替代

    • 设置True,会使用mtplotlib中的动画输出

**kwargs


  • 方法

update

  • 参数

    • int 或 float
    • 可选
  • 手动更新进度条信息

close

  • 清除并关闭进度条

clear

  • 清除当前显示的进度条

refresh

  • 强制刷新当前的进度条

  • 参数

    • nolock

      • bool

        • True

          • 不锁
        • False

          • 调用内部的函数acquire
      • 可选

    • lock_args

      • tuple

      • 可选

      • 传入到内部的函数acquire

        • 指定之后,只有acquire返回True才会显示进度条

unpause

  • 重新启动上一次打印时tqdm的计数器

reset

  • 参数

    • total

      • int or float
      • 可选
      • 新的进度条的total
  • 重新指定total为0以重复利用

set_description

  • 参数

    • desc

    • refresh

      • 强制刷新
  • 设置/修改进度条的提示,字符串后自动添加 “:”

set_description_str

  • desc
  • refresh
  • 设置/修改进度条的提示,字符串后不添加 “:”

set_postfix

  • 参数

    • ordered_dict
    • refresh
    • **kwargs
  • 设置/修改进度条后的提示信息

set_postfix_str

  • 参数

    • s
    • refresh
  • 以字符串的形式直接显示信息

即为下方图片

tqdm 简介及正确的打开方式相关推荐

  1. 苹果怎么删除通讯录联系人_苹果手机通讯录怎么恢复?这才是正确的打开方式!...

    原标题:苹果手机通讯录怎么恢复?这才是正确的打开方式! 苹果手机通讯录怎么恢复? 在社交软件使用频率如此高的当下,部分手机用户还是习惯通过电话号码来和朋友进行直接的联系.毕竟社交软件不能保证及时地沟通 ...

  2. 你真的佩戴好劳保防护用品了吗?这才是正确的打开方式

    对于劳保市场而言任何时候都是采购旺季,许多企业一年四季都需要做好储备的劳保物资.劳保用品是保护工作人员在生产过程中的人身安全所必备的一种防御性装备,是作业人员减轻或免受于各种人身伤害和职业伤害的用品. ...

  3. 商务电子邮箱用什么邮箱好?商务邮件正确的打开方式

    随着电子邮件的普及,电子邮箱的使用成为了商务人士.外贸人的"必需品".很多商务人士及出差在外的工作人员为了提高自身职业素养,都需要选择一款好用的商务邮箱.下面TOM小编给大家分析一 ...

  4. android ac充电模式,出行必备!这才是充电宝正确的打开方式,苹果安卓一起充...

    原标题:出行必备!这才是充电宝正确的打开方式,苹果安卓一起充 出门在外三大宝,钱包.手机.充电宝! 手机钱包自不必说 充电宝就很让人头疼了 出门时想着这么大.又重,充电又慢 还不定安全,算了,不带了 ...

  5. ios解锁动态图片_升级iOS10后的解锁界面 正确的打开方式是这样!(图)

    刚升级到iOS 10的小伙伴最直观的感受可能就是锁屏界面的改变了.从前只要按下电源键点亮屏幕,手指轻触Home键(不需要按下)就能轻松解锁手机.而现在点亮之后则必须按下Home键才行(广大非iPhon ...

  6. 劳保防护用品正确的打开方式,保障职业安全(二)

    安全防护用品又称劳保用品,是指在施工作业过程中能够对作业人员的人身起保护作用使作业人员减轻或免遭各种人身伤害和职业伤害的用品.上一篇与大家讲解了3种劳保防护用品使用注意事项.今天百华小编继续与大家介绍 ...

  7. 奥维没有了gg地图后,正确的打开方式

    奥维没有了gg地图后,正确打开方式 几天前,奥维发布了公告,告知因政策原因,需要撤销google和bing等地图,因为国内地图没有可以和google等地图可媲美的,因为工作中确实需要使用google地 ...

  8. 判断两个图片的特征向量_响应式布局提高篇 图片正确的打开方式

    作者 | Brilliant Open Web团队 编辑 | Aaron 本文承接上一章的内容,接着介绍响应式布局设计,主要讲如何实现响应式图片.通过对图片适配问题的说明,加深对响应式图片的理解,并分 ...

  9. 不是你无法入门自然语言处理(NLP),而是你没找到正确的打开方式

    〇.序 之前一段时间,在结合深度学习做 NLP 的时候一直有思考一些问题,其中有一个问题算是最核心一个:究竟深度网络是怎么做到让各种 NLP 任务解决地如何完美呢?到底我的数据在 NN 中发什么了什么 ...

最新文章

  1. gcc和g++是什么,有什么区别?
  2. 1元体验微软公有云,看起来还不错
  3. 常量和指针(Pointers and Constants)
  4. java接收的文件转换成临时文件_Android中怎样使用createTempFile实现将字节数据创建到临时文件并转换成FileOutputStream和FileInputStream...
  5. BZOJ.4821.[SDOI2017]相关分析(线段树)
  6. 动态分配数组(new)和用随机数赋值(rand)
  7. linux java环境变量设置
  8. 在5分钟内在MacOSX Lion中设置JAVA_HOME,MAVEN_HOME,ANT_HOME
  9. [洛谷P1908] 逆序对|归并排序|树状数组
  10. Nginx 笔记与总结(12)Nginx URL Rewrite 实例(ecshop)
  11. 三度其三——矢量场的旋度
  12. Linux平台OpenGL之helloworld(十)
  13. 【nodejs】waitFor is deprecated
  14. 小度wifi的使用说明
  15. CI521支持读写A卡和B卡,PIN对PIN直接替换CV520和CI520,软硬件兼容
  16. 飞信2009_从飞信倒下的八个原因看运营商的复兴之路
  17. RAC修改IP(public/virtual/scan)
  18. word拆分表格宽度发生大小变化问题
  19. 雨滴网易云播放器html代码,求大佬帮忙看下 雨滴音乐插件怎么改代码关联网易云?...
  20. Java 实现数据库读写分离竟如此简单?

热门文章

  1. 听易中天品三国---有感于曹操的用人之道
  2. Redhat linux 操作系统初级课程
  3. oracle售前总监高礼强,高礼强谈甲骨文软件:以C.I.O为核心
  4. Linux模拟门禁,LinuxARMLinux指纹门禁系统.ppt
  5. 搜索系统中的文本相关性实践经验
  6. 阿里巴巴P3C eclipse集成使用
  7. 环信IM(PC-WEB端整体实现)
  8. Cookie原理及应用场景
  9. opencv 简单美颜效果
  10. I2C通信实现OLED屏幕