Python的Tqdm模块实现进度条配置


Posted in Python onFebruary 24, 2021

tqdm官网地址:https://pypi.org/project/tqdm/

Github地址:https://github.com/tqdm/tqdm

简介

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

       总之,它是用来显示进度条的,很漂亮,使用很直观(在循环体里边加个tqdm),而且基本不影响原程序效率。名副其实的“太强太美”了!这样在写运行时间很长的程序时,是该多么舒服啊!

给一张GIF图看一下实际效果

Python的Tqdm模块实现进度条配置

安装

pip install tqdm

 使用

示例一

简单的demo:

# !/user/bin/env python
# -*- coding:utf-8 -*-
 
 
import time
from tqdm import tqdm
from tqdm._tqdm import trange
 
for i in tqdm(range(100)):
  time.sleep(0.01)

输出结果如下:

Python的Tqdm模块实现进度条配置

关于tqdm对于range的封装

import time
from tqdm import tqdm
from tqdm._tqdm import trange
 
for j in trange(100):
  time.sleep(0.1)

输出结果如下(同上)

Python的Tqdm模块实现进度条配置

示例二:

对于任意list的使用

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

输出结果如下:

Python的Tqdm模块实现进度条配置

传入任意list

pbar = tqdm(["a", "b", "c", "d"])
  for char in pbar:
    pbar.set_description("Processing %s" % char)

手动控制更新

with tqdm(total=100) as pbar:
  for i in range(10):
    pbar.update(10)
 
 
# 也可以这样
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)

 输出结果如下:

Python的Tqdm模块实现进度条配置

示例四

在Shell的tqdm用法

$ time find . -name '*.py' -exec cat \{} \; | wc -l
857365 
 
real  0m3.458s
user  0m0.274s
sys   0m3.325s 
 
$ time find . -name '*.py' -exec cat \{} \; | tqdm | wc -l
857366it [00:03, 246471.31it/s]
857365
 
real  0m3.585s
user  0m0.862s
sys   0m3.358s

使用的参数:

$ find . -name '*.py' -exec cat \{} \; |
  tqdm --unit loc --unit_scale --total 857366 >> /dev/null
100%|???????????????????????????????????| 857K/857K [00:04<00:00, 246Kloc/s]

 备份一个目录:

$ 7z a -bd -r backup.7z docs/ | grep Compressing |
  tqdm --total $(find docs/ -type f | wc -l) --unit files >> backup.log
100%|????????????????????????????????| 8014/8014 [01:37<00:00, 82.29files/s]

本文参考:https://blog.csdn.net/langb2014/article/details/54798823?locationnum=8&fps=1

到此这篇关于Python的Tqdm模块实现进度条配置的文章就介绍到这了,更多相关Python Tqdm进度条内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python实现在pickling的时候压缩的方法
Sep 25 Python
Python中使用第三方库xlutils来追加写入Excel文件示例
Apr 05 Python
Phantomjs抓取渲染JS后的网页(Python代码)
May 13 Python
python爬虫框架scrapy实战之爬取京东商城进阶篇
Apr 24 Python
tensorflow 用矩阵运算替换for循环 用tf.tile而不写for的方法
Jul 27 Python
Python中的元组介绍
Jan 28 Python
Ubuntu18.04下python版本完美切换的解决方法
Jun 14 Python
Pandas操作CSV文件的读写实现方法
Nov 13 Python
Tensorflow获取张量Tensor的具体维数实例
Jan 19 Python
python实现数字炸弹游戏
Jul 17 Python
Python 使用Opencv实现目标检测与识别的示例代码
Sep 08 Python
Python 必须了解的5种高级特征
Sep 10 Python
详解pandas apply 并行处理的几种方法
Feb 24 #Python
python自动生成sql语句的脚本
Feb 24 #Python
Django与AJAX实现网页动态数据显示的示例代码
Feb 24 #Python
一文读懂python Scrapy爬虫框架
Feb 24 #Python
Django如何重置migration的几种情景
Feb 24 #Python
Django中的DateTimeField和DateField实现
Feb 24 #Python
Python制作运行进度条的实现效果(代码运行不无聊)
Feb 24 #Python
You might like
数据库相关问题
2006/10/09 PHP
在 PHP 中使用随机数的三个步骤
2006/10/09 PHP
elgg 获取文件图标地址的方法
2010/03/20 PHP
使用Appcan客户端自动更新PHP版本号(全)
2015/07/31 PHP
php函数式编程简单示例
2019/08/08 PHP
判断页面是关闭还是刷新的js代码
2007/01/28 Javascript
解决使用attachEvent函数时,this指向被绑定的元素的问题的方法
2007/08/13 Javascript
JQuery SELECT单选模拟jQuery.select.js
2009/11/12 Javascript
自动最大化窗口的Javascript代码
2013/05/22 Javascript
javascript date格式化示例
2013/09/25 Javascript
使用jQuery的attr方法来修改onclick值
2014/07/07 Javascript
JS随机洗牌算法之数组随机排序
2016/03/23 Javascript
极力推荐一款小巧玲珑的可视化编辑器bootstrap-wysiwyg
2016/05/27 Javascript
js实现带三角符的手风琴效果
2017/03/01 Javascript
AngularJS的ng-click传参的方法
2017/06/19 Javascript
VUE 配置vue-devtools调试工具及安装方法
2018/09/30 Javascript
说说如何在Vue.js中实现数字输入组件的方法
2019/01/08 Javascript
vue和better-scroll实现列表左右联动效果详解
2019/04/29 Javascript
微信小程序实现Session功能及无法获取session问题的解决方法
2019/05/07 Javascript
微信小程序缓存过期时间的使用详情
2019/05/12 Javascript
jQuery实现数字华容道小游戏(实例代码)
2020/01/16 jQuery
vue开发移动端底部导航条功能
2020/04/08 Javascript
Vue element-ui父组件控制子组件的表单校验操作
2020/07/17 Javascript
[03:08]迎霜节狂欢!2018年迎霜节珍藏Ⅰ一览
2018/12/25 DOTA
[38:31]完美世界DOTA2联赛PWL S3 Magma vs GXR 第一场 12.13
2020/12/17 DOTA
python查看微信好友是否删除自己
2016/12/19 Python
对python 命令的-u参数详解
2018/12/03 Python
基于python调用jenkins-cli实现快速发布
2020/08/14 Python
python给list排序的简单方法
2020/12/10 Python
HTML5 Canvas的事件处理介绍
2015/04/24 HTML / CSS
中专生职业生涯规划书范文
2014/01/10 职场文书
有趣的广告词
2014/03/18 职场文书
2015圣诞节贺卡寄语
2015/03/24 职场文书
通讯稿格式及范文
2015/07/22 职场文书
使用Vue3+Vant组件实现App搜索历史记录功能(示例代码)
2021/06/09 Vue.js
Vscode中SSH插件如何远程连接Linux
2022/05/02 Servers