python进度条tqdm

article/2025/10/28 18:39:44

文章目录

  • 1. 简介
  • 2. 安装
  • 3. 使用方法
    • 3.1 自动控制
    • 3.2 手动控制的形式
  • 4. 总结
    • 4.1 基于迭代对象运行: tqdm(iterator)
    • 4.2 手动进行更新
    • 4.3 tqdm模块参数说明
    • 4.4 实例
  • 5. 参考资料:

1. 简介

在进行一个很长的 for 循环的时候,如何查看循环进度?

Tqdm 是一个智能进度表,是一个快速,可扩展的 Python 进度条,可以在 Python 长循环中添加一个进度提示信息,用户只需要封装任意的迭代器 tqdm(iterator)。它能够显示所有可迭代对象当前执行的进度。

你只需要用 tqdm 对可迭代对象进行封装后再遍历即可实现进度条功能,比如说:

from tqdm import tqdm
for i in tqdm(range(10000)):...

显示效果如下:

76%|████████████████████████ | 7568/10000 [00:33<00:10, 229.00it/s]

解读:

在这里插入图片描述

2. 安装

使用pip就可以安装。Windows环境下打开Cmd(开始—运行—CMD),

pip install tqdm

3. 使用方法

3.1 自动控制

使用方法一: tqdm

tqdm(list) 方法可以传入任意一种 list, 比如数组

from tqdm import tqdmfor i in tqdm(range(1000)):  #do somethingpass  # 输出
100%|██████████| 1000/1000 [00:00<00:00, 1003662.12it/s]

或者string的数组

for char in tqdm(["a", "b", "c", "d"]):#do somethingpass

使用方法二: trange

trange(i) 是 tqdm(range(i)) 的简单写法

from tqdm import trange
for i in trange(100):#do somethingpass
# 输出
100%|██████████| 100/100 [00:00<?, ?it/s]

使用方法三: 手动方法

在for循环外部初始化tqdm,可以打印其他信息

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

效果:

100%|███████████████████████████████████| 857K/857K [00:04<00:00, 246Kloc/s]

3.2 手动控制的形式

除了迭代的形式,你可以手动控制进度,加一个 tqdm上下文 即可:

with tqdm(total=100) as pbar:  # total 的值即是总进度for i in range(10):sleep(0.1)pbar.update(10)  # 进度加10

上述例子中,pbar 是 tpdm 的“进度”,每一次对 pbar 进行 update 10 都相当于进度加10。

total 的值即是总进度,这里 total 的值是100,那么pbar加到100的时候进度也就结束了。

你也可以选择不使用上下文的形式调用,但要记得结束后对对象进行关闭操作:

pbar = tqdm(total=100)
for i in range(10):sleep(0.1)pbar.update(10)
pbar.close()
processes = []
ans = []file_pattern = os.path.join(workdir, f"*.{pattern}")
files = glob(file_pattern)pool = multiprocessing.Pool(processes=2)
for file in tqdm(files, total=len(files)):print(file)processes.append(pool.apply_async(read_file, args=(file, pattern), ))

4. 总结

tqdm模块是python进度条库, 主要分为两种运行模式

4.1 基于迭代对象运行: tqdm(iterator)

import time
from tqdm import tqdm, trange#trange(i)是tqdm(range(i))的一种简单写法
for i in trange(100):time.sleep(0.05)for i in tqdm(range(100), desc='Processing'):time.sleep(0.05)dic = ['a', 'b', 'c', 'd', 'e']
pbar = tqdm(dic)
for i in pbar:pbar.set_description('Processing '+i)time.sleep(0.2)100%|██████████| 100/100 [00:06<00:00, 16.04it/s]
Processing: 100%|██████████| 100/100 [00:06<00:00, 16.05it/s]
Processing e: 100%|██████████| 5/5 [00:01<00:00,  4.69it/s]

4.2 手动进行更新

import time
from tqdm import tqdmwith tqdm(total=200) as pbar:pbar.set_description('Processing:')# total表示总的项目, 循环的次数20*10(每次更新数目) = 200(total)for i in range(20):# 进行动作, 这里是过0.1stime.sleep(0.1)# 进行进度更新, 这里设置10个(每次增加10,20次就增加到了 200次,然后结束)pbar.update(10)
Processing:: 100%|██████████| 200/200 [00:02<00:00, 91.94it/s]

4.3 tqdm模块参数说明

class tqdm(object):"""Decorate an iterable object, returning an iterator which acts exactlylike the original iterable, but prints a dynamically updatingprogressbar every time a value is requested."""def __init__(self, iterable=None, desc=None, total=None, leave=False,file=sys.stderr, 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, nested=False,bar_format=None, initial=0, gui=False):
  • iterable: 可迭代的对象, 在手动更新时不需要进行设置
  • desc: 字符串, 左边进度条描述文字
  • total: 总的项目数
  • leave: bool值, 迭代完成后是否保留进度条
  • file: 输出指向位置, 默认是终端, 一般不需要设置
  • ncols: 调整进度条宽度, 默认是根据环境自动调节长度, 如果设置为0, 就没有进度条, 只有输出的信息
  • unit: 描述处理项目的文字, 默认是’it’, 例如: 100 it/s, 处理照片的话设置为’img’ ,则为 100 img/s
  • unit_scale: 自动根据国际标准进行项目处理速度单位的换算, 例如 100000 it/s >> 100k it/s

4.4 实例

import time
from tqdm import tqdm# 发呆0.5s
def action():time.sleep(0.5)
with tqdm(total=100000, desc='Example', leave=True, ncols=100, unit='B', unit_scale=True) as pbar:for i in range(10):# 发呆0.5秒action()# 更新发呆进度pbar.update(10000)
Example: 100%|███████████████████████████████████████████████████| 100k/100k [00:05<00:00, 19.6kB/s]

5. 参考资料:

[1] tqdm介绍;


http://chatgpt.dhexx.cn/article/RdTu7edZ.shtml

相关文章

[Python] 实现文本进度条

目录 简单的开始单行动态刷新带刷新的文本进度条 简单的开始 进度条是计算机处理任务或执行软件中常用的增强用户体验的重要手段&#xff0c;它能度条功能。今天我们将利用 Python 字符串处理方法实现文本进度条功能。 最简单地&#xff0c;利用 print() 函数实现简单的非刷新…

太好玩了!6种Python实现【实时】显示进度条!

相信大家对进度条一定不陌生了&#xff0c;比如在我们安装python库的时候可以看到下载的进度&#xff0c;此外在下载文件时也可以看到类似的进度条&#xff0c;比如下图这种&#xff1a; 应用场景&#xff1a;下载文件、任务计时等 今天辰哥就给大家分享Python的6种不同的实现实…

Python实现进度条的5种方式

Python实现显示进度条_python 显示进度条_TaoismHuang的博客-CSDN博客文章目录1. 普通进度条2.1. 普通进度条利用打印功能print进行实时刷新显示import sysimport timefor i in range(1, 101): """ 任务代码 """ print("\r", end"…

【爬虫系列】Python如何实现进度条效果?

一、需求 在爬取数据过程中&#xff0c;发现不看输出日志是不知道当前的爬取进度&#xff0c;而单纯靠控制台输出日志信息也不方便判断。因此&#xff0c;就想办法给爬取过程加个进度条&#xff0c;实时展示当前的爬取进度。 有了这个需求和想法之后&#xff0c;那如何实现呢…

Python 实现进度条的六种方式

一、普通进度条 示例代码 import sys import timedef 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.…

svn -- 客户端+服务端的下载安装及配置

通用管理后台推荐 (兮家 plus) 【兮家 plus】, 主要应用于中小型项目的快速开发&#xff0c;已经历历时3年的优化改进&#xff0c;具备完善的基础功能以及代码生成&#xff0c;并且拥有完善的分布式解决方案&#xff1a;如分布式缓存&#xff0c;分布式锁&#xff0c;分布式唯…

SVN的下载安装及配置环境变量

文章目录 简介使用SVN特点特性工作原理 安装1、安装subversion服务器端2、创建SVN资源库目录3、生成SVN资源目录4、开启3690端口5、使用命令svnserve启动服务6、用户密码passwd配置1、文件都在svn的conf/目录下2、修改passwd3、权限控制authz配置 7、修改svnserve.conf配置选项…

SVN注册下载安装以及使用一气呵成

本博客根据SVNbucket官方视频学习制作的,这里记录本人操作的记录 视频链接: https://www.bilibili.com/video/BV1k4411m7mP?vd_sourcea4c65e14d1ff11ea858cadc164fbb59e 一 .SVN的介绍 1.SVN是什么 查阅资料可以知道 ,这是一个开放源代码的版本控制系统,管理着随时间改变的…

Windows下的subversion(SVN)下载安装及配置 -详细步骤

一、安装&#xff1a; 1.下载网址[http://subversion.apache.org/ 2.选择Windows系统下的VisualSVN二进制安装文件 3.选择VisualSVN Server下&#xff0c;相应的版本 4.下载完成后&#xff0c;直接点击安装 5&#xff0c;一直下一步&#xff0c;到 下一步&#xff0c;知…

SVN的下载与安装

看到这篇博客的应该就知道SVN是什么——版本控制系统。具体高深的暂时还知道的不多&#xff0c;我也是才接触&#xff0c;在这里分享一下&#xff0c;也算帮自己记录一下。 SVN大概分两部分&#xff0c;一部分下个安装包&#xff0c;装在电脑上&#xff1b;另一部分&#xff0…

svn和TortoiseSVN下载安装步骤【非常详细】

1 安装Apache Subversion 由于Apache Subversion 项目不正式认可或维护 Subversion 软件的任何二进制包。 我们可以通过官网推荐的其他平台下载二进制包 地址 https://subversion.apache.org/packages.html 点击 VisualSVN 支持和维护&#xff08;选这个是因为不需要注册&…

svn下载和安装

一、svn简介 SVN全称Subversion&#xff0c;是一款优秀的版本控制工具。 SVN分为服务器、客户端两部分&#xff0c;一般以VisualSVN作为服务器&#xff0c;以TortoiseSVN作为客户端。 SVN 核心概念&#xff1a; repository&#xff08;源代码库&#xff09;:源代码统一存放…

项目管理工具-SVN(SubVersion)下载安装/基本详细具体使用步骤

目录 前言 SVN简介&#xff1a; 1.什么是SVN&#xff1f; 2.下载服务端 Apache Subversion Binary Packages 进入网址后&#xff0c;滚动到浏览器最底部看到如下截图 下载TortoiseSvn--​编辑 3.下载地址客户端 https://tortoisesvn.net/downloads.html 4.检验客…

SVN下载安装及入门使用教程,详细到不能再详细了

为什么要使用SVN&#xff1f; 程序员在编写程序的过程中&#xff0c;每个程序员都会生成很多不同的版本&#xff0c;这就需要程序员有效的管理代码&#xff0c;在需要的时候可以迅速&#xff0c;准确取出相应的版本。 SVN是什么&#xff1f; 它是一个自由/开源的版本控制系统…

2.SVN下载及其安装配置

目录 1. SVN简介 2. SVN下载及其安装配置 3. SVN服务器与客户端基本使用 4. Eclipse中使用SVN 5. SVN冲突解决 6. IDEA中使用SVN SVN下载及其安装配置 目录安装SVN前需知下载SVN服务器1.进入官网2.点击version history历史版本3.选择4.2.0版本 --> 选择64位点击下载4.进…

SVN客户端(Windows)——Tortoise SVN(中文版 )的下载及安装

SVN客户端&#xff08;Windows&#xff09;——Tortoise SVN&#xff08;中文版 &#xff09;的下载及安装 主要介绍 Tortoise SVN 的下载、安装及如何设置为中文 Tortoise SVN 及中文安装包下载 官网下载&#xff1a;Tortoise SVN 123云盘下载&#xff1a;Tortoise SVN 及…

SVN下载与安装

1、下载地址 Downloads TortoiseSVN 这里提供一个官网的1.14.3版本。 安装包 链接&#xff1a;https://pan.baidu.com/s/1ZAGv5FeVLM6n3GRb4WAtvw?pwd9izl 提取码&#xff1a;9izl 中文语言包 链接&#xff1a;https://pan.baidu.com/s/1A1wILNaQu5sYAffSLl1usg?pwdll…

SVN 下载与安装(超简单)!!!

一 SVN 是什么&#xff1f; 在公司做过团队开发都知道&#xff0c;一个项目的代码要保持最新的版本。 举个例子&#xff01; 例如&#xff1a;一个公司的项目有5人开发&#xff08;A&#xff0c;B&#xff0c;C&#xff0c;D&#xff0c;E五个人&#xff09;&#xff0c;有一…

SVN学习:SVN的下载安装

一、SVN的安装 1、下载SVN安装包 首先在本地电脑上安装SVN服务器与客户端&#xff0c;安装包可以去官网下载或者从我的百度网盘中直接提取。两个 获取方法的链接地址如下所示&#xff1a; 1、官网地址&#xff1a;SVN服务器下载地址&#xff1a;https://www.visualsvn.com/ser…

Hibernate - Java 类型, Hibernate 映射类型及 SQL 类型之间的对应关系

【1】常见的映射关系表 常见的映射对应关系如下表所示&#xff1a; Hibernate映射类型Java类型标准SQL类型字节大小integer/intjava.lang.Integer/intINTEGER4Bytelongjava.lang.Long/longBIGINT8Byteshortjava.lang.Short/shortSMALLINT2Bytebytejava.lang.Byte/byteTINYINT…