Python 进度条tqdm应用记录

2024-08-25 20:44

本文主要是介绍Python 进度条tqdm应用记录,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

tqdm 简介

tqdm 是一个非常流行的 Python 库,用于快速添加进度条到循环中。它可以方便地集成到脚本中,并且支持多种类型的迭代器。

安装

首先确保你安装了 tqdm。如果还没有安装,可以通过 pip 安装它(如果要在 jupyter notebook 上使用,还需要ipywidgets支持):

pip install tqdm

使用方法举例

1. 进度条的基本使用

from tqdm import tqdm
import time# 创建一个简单的进度条
for i in tqdm(range(100)):time.sleep(0.01)  # 模拟耗时操作

2. 自定义描述信息

from tqdm import tqdm
import time# 添加描述信息
for i in tqdm(range(100), desc="Processing"):time.sleep(0.01)

3. 设置总进度

from tqdm import tqdm
import time# 显示总进度
for i in tqdm(range(100), total=100):time.sleep(0.01)

4. 更新进度

from tqdm import tqdm
import time# 手动更新进度条
pbar = tqdm(total=100)
for i in range(100):time.sleep(0.01)pbar.update(1)  # 更新进度
pbar.close()

5. 多个进度条

from tqdm import tqdm
import time# 同时显示多个进度条
with tqdm(total=100, desc="First") as pbar1, tqdm(total=100, desc="Second") as pbar2:for i in range(100):time.sleep(0.01)pbar1.update(1)pbar2.update(1)

6. 显示额外信息

采用 tqdm.write 函数,可以输出额外信息。

from tqdm import tqdm
import time# 在进度条后面显示额外信息
for i in tqdm(range(100), desc="Processing", unit="it", unit_scale=True):time.sleep(0.01)tqdm.write(f"Processing {i}")

7. 动态更新额外信息

from tqdm import tqdm
import time# 动态更新额外信息
pbar = tqdm(total=100, desc="Processing")
for i in range(100):time.sleep(0.01)pbar.set_postfix_str(f"Processing {i}")pbar.update(1)
pbar.close()

应用实例

1. 在脚本文件 .py 中使用进度条

import pandas as pd
import tqdm
from bad import BigADatabad = BigAData()
stock_count = bad.get_stock_count()
progress = tqdm.tqdm(total=stock_count, desc='获取沪深A股列表', unit='stock')
stock_list = bad.get_stock_name_list(num_per_page=100, progress_bar=progress, stock_count=stock_count)
pd.DataFrame(stock_list).to_excel('沪深A.xlsx', index=False)

效果如下:
17%
100%

2. 在 jupyter notebook 文件 .ipynb 中使用进度条

import pandas as pd
from tqdm.notebook import tqdm
from bad import BigADatabad = BigAData()
stock_count = bad.get_stock_count()
progress = tqdm(total=stock_count, desc='获取大A股票名录', unit='stock')
stock_list = bad.get_stock_name_list(num_per_page=100, progress_bar=progress, stock_count=stock_count)
pd.DataFrame(stock_list).to_excel('大A名录.xlsx', index=False)

jupyter notebook 100%

3. 作为实例函数的输入参数

    # 获取股票列表def get_stock_name_list(self, node='hs_a', stock_count=None, num_per_page=100, progress_bar=None):''' 获取股票列表 node: 节点代码,如hs_a表示沪深A股,sh_a表示沪市A股,sz_a表示深市A股,hs_bjs表示北交所,cyb表示创业板。stock_count: 股票总数num_of_page: 每页数据量progress_bar: 进度条return: 股票列表'''if stock_count is None:stock_count = self.get_stock_count(node)if stock_count is not None:stock_list = []for i in range(1, int(stock_count/num_per_page)+2):data = self.get_market_quotations(node, i, num_per_page)for item in data:stock_list.append({'symbol': item['symbol'], 'code': item['code'], 'name': item['name']})if progress_bar is not None:progress_bar.update(1)return stock_listelse:return None 

小结

以上就是 tqdm 的一些用法。我们可以根据自己的需求调整这些参数来定制进度条的显示效果。tqdm 的灵活性使得它非常适合用于各种场景下的进度跟踪。

这篇关于Python 进度条tqdm应用记录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1106609

相关文章

Redis中Stream详解及应用小结

《Redis中Stream详解及应用小结》RedisStreams是Redis5.0引入的新功能,提供了一种类似于传统消息队列的机制,但具有更高的灵活性和可扩展性,本文给大家介绍Redis中Strea... 目录1. Redis Stream 概述2. Redis Stream 的基本操作2.1. XADD

JSONArray在Java中的应用操作实例

《JSONArray在Java中的应用操作实例》JSONArray是org.json库用于处理JSON数组的类,可将Java对象(Map/List)转换为JSON格式,提供增删改查等操作,适用于前后端... 目录1. jsONArray定义与功能1.1 JSONArray概念阐释1.1.1 什么是JSONA

nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析(结合应用场景)

《nginx-t、nginx-sstop和nginx-sreload命令的详细解析(结合应用场景)》本文解析Nginx的-t、-sstop、-sreload命令,分别用于配置语法检... 以下是关于 nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析,结合实际应

使用Python删除Excel中的行列和单元格示例详解

《使用Python删除Excel中的行列和单元格示例详解》在处理Excel数据时,删除不需要的行、列或单元格是一项常见且必要的操作,本文将使用Python脚本实现对Excel表格的高效自动化处理,感兴... 目录开发环境准备使用 python 删除 Excphpel 表格中的行删除特定行删除空白行删除含指定

Python通用唯一标识符模块uuid使用案例详解

《Python通用唯一标识符模块uuid使用案例详解》Pythonuuid模块用于生成128位全局唯一标识符,支持UUID1-5版本,适用于分布式系统、数据库主键等场景,需注意隐私、碰撞概率及存储优... 目录简介核心功能1. UUID版本2. UUID属性3. 命名空间使用场景1. 生成唯一标识符2. 数

Python办公自动化实战之打造智能邮件发送工具

《Python办公自动化实战之打造智能邮件发送工具》在数字化办公场景中,邮件自动化是提升工作效率的关键技能,本文将演示如何使用Python的smtplib和email库构建一个支持图文混排,多附件,多... 目录前言一、基础配置:搭建邮件发送框架1.1 邮箱服务准备1.2 核心库导入1.3 基础发送函数二、

Python包管理工具pip的升级指南

《Python包管理工具pip的升级指南》本文全面探讨Python包管理工具pip的升级策略,从基础升级方法到高级技巧,涵盖不同操作系统环境下的最佳实践,我们将深入分析pip的工作原理,介绍多种升级方... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

基于Python实现一个图片拆分工具

《基于Python实现一个图片拆分工具》这篇文章主要为大家详细介绍了如何基于Python实现一个图片拆分工具,可以根据需要的行数和列数进行拆分,感兴趣的小伙伴可以跟随小编一起学习一下... 简单介绍先自己选择输入的图片,默认是输出到项目文件夹中,可以自己选择其他的文件夹,选择需要拆分的行数和列数,可以通过

Python中反转字符串的常见方法小结

《Python中反转字符串的常见方法小结》在Python中,字符串对象没有内置的反转方法,然而,在实际开发中,我们经常会遇到需要反转字符串的场景,比如处理回文字符串、文本加密等,因此,掌握如何在Pyt... 目录python中反转字符串的方法技术背景实现步骤1. 使用切片2. 使用 reversed() 函

Python中将嵌套列表扁平化的多种实现方法

《Python中将嵌套列表扁平化的多种实现方法》在Python编程中,我们常常会遇到需要将嵌套列表(即列表中包含列表)转换为一个一维的扁平列表的需求,本文将给大家介绍了多种实现这一目标的方法,需要的朋... 目录python中将嵌套列表扁平化的方法技术背景实现步骤1. 使用嵌套列表推导式2. 使用itert