Tqdm,一个让 Python 不再无聊的幕后英雄

大家好!我是爱摸鱼的小鸿,关注我,收看每期的编程干货。

一个简单的库,也许能够开启我们的智慧之门,
一个普通的方法,也许能在危急时刻挽救我们于水深火热,
一个新颖的思维方式,也许能激发我们无尽的创造力,
一个独特的技巧,也许能成为我们的隐形盾牌……


神奇的 Python 库之旅,第 2

目录

    • 一、Tqdm 简介和安装
    • 二、Tqdm 高级用法
    • 三、Tqdm 应用场景
    • 四、Tqdm 进阶技巧
    • 五、作者Info

一、Tqdm 简介和安装

你是否厌倦了冰冷的代码和无趣的编程过程?是否渴望一种能够让编程变得更加生动有趣的方式?

等待程序执行过程中无疑是一种痛苦的煎熬,有时候不知道是卡 bug 还是咋了,可能吃完饭回来程序就崩了,这种感觉,大概只有程序员能懂了。。。
在这里插入图片描述

而在编程的世界里,有一些小小的工具或库,它们或许不够炫酷,但却有着令人惊喜的魔力。

今天,我们要探讨的主角就是这样一个“小而美”的 Python 库——Tqdm,它或许看起来普普通通,但当你真正体验过它的魅力后,你会发现它是一颗闪耀的星星

Tqdm,全称“taqaddum”,是阿拉伯语中“进展”或“进步”的意思,正如其名,tqdm 致力于让你的代码执行过程更加直观、更有进展。

它是一个快速、可扩展的 Python 进度条工具,可以轻松地将迭代过程中的进度可视化,让你一目了然地了解代码的执行情况,为你的代码运行过程增添一份魔法般的感觉

安装 tqdm 非常简单,只需要使用 pip 命令即可:

pip install tqdm

安装完成后,我们可以尝试一些基本的用法,比如:

from tqdm import tqdm
import time
import randomfor i in tqdm(range(20)):time.sleep(random.random())  # 模拟耗时操作

这段代码会展示一个美观的进度条,让你的代码运行过程不再无聊,效果如下:

 75%|███████▌  | 15/20 [00:07<00:02,  2.07it/s]

Github 项目地址:

https://github.com/tqdm/tqdm

接下来说说 Tqdm 的高级用法。

二、Tqdm 高级用法

除了基本的进度条显示外,tqdm 还支持许多高级用法,比如显示额外信息、定制化进度条样式等。例如,我们可以这样使用 tqdm :

from tqdm import tqdm
import timewith tqdm(total=100, desc='Processing', unit='items') as pbar:for i in range(100):time.sleep(0.1)  # 模拟耗时操作pbar.update(1)  # 更新进度条pbar.set_postfix({'status': 'completed'})

这段代码展示了一个带有描述和单位的进度条,同时还会显示任务完成状态,让进度追踪变得更加直观。

三、Tqdm 应用场景

tqdm 不仅可以用于 Python 的基本编程,还可以在数据处理、机器学习、科学计算等领域发挥重要作用。比如,在数据处理中,我们可以这样使用 tqdm :

import pandas as pd
from tqdm import tqdm# 创建一个示例DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],'Age': [25, 30, 35, 40]}
df = pd.DataFrame(data)# 使用Tqdm美化数据处理过程
for index, row in tqdm(df.iterrows(), total=len(df)):# 在这里进行数据处理操作pass

通过 tqdm ,我们不仅可以清晰地了解数据处理的进度,还可以在处理大规模数据时更好地掌握时间。

四、Tqdm 进阶技巧

实时更新进度
除了基本用法和应用场景外,tqdm 还有一些进阶技巧,比如实时更新进度、自定义进度条样式等。这些技巧可以让我们更好地利用 tqdm ,提高编程效率。例如,我们可以这样实时更新进度条

from tqdm import tqdm
import timefor i in tqdm(range(100), desc='Processing', unit='items', ncols=100):time.sleep(0.1)  # 模拟耗时操作

这段代码展示了如何实时更新进度条的样式,让进度显示更加清晰。

为爬虫增添一抹色彩
通过 tqdm ,我们不仅可以监控爬虫的进度,还可以实时了解每个请求的处理情况,让爬虫之旅更加有趣

import requests
from tqdm import tqdm# 定义爬取函数
def crawl_website(urls):for url in tqdm(urls):# 发送请求response = requests.get(url)# 在这里进行数据处理操作pass# 待爬取的网址列表
urls = ['http://example1.com', 'http://example2.com', 'http://example3.com']# 调用爬取函数
crawl_website(urls)

通过以上示例,相信大家已经感受到 tqdm 的魅力所在了吧!它不仅让编程变得更加生动有趣,还能够提升我们的工作效率。无论是在学习、工作还是个人项目中,都可以尝试使用 tqdm 来让编程之路更加愉快!

其实只要是耗时的操作都可以用 tqdm 实现进度条,可视化展示一个优雅的处理过程,当然你也可以通过在其中加入日志(logger)或者直接打印(print)信息也可以看到程序执行的过程

更多功能可参考官方文档:

https://tqdm.github.io

tqdm ,一个看似普通却有着无穷魅力的 Python 库,它为我们的编程之路增添了不少乐趣和方便

五、作者Info

Author:小鸿的摸鱼日常,Goal:让编程更有趣! 专注于

Web开发、爬虫,游戏开发,数据分析、自然语言处理,AI等,期待你的关注,让我们一起成长、一起Coding!

版权说明:本文禁止抄袭、转载,侵权必究!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3016924.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

大模型爱好者的福音,有了它个人电脑也可以运行大模型了

GPT4ALL是一款可以运行在个人电脑上的大模型系统&#xff0c;不需要GPU即可运行&#xff0c;目前支持mac&#xff0c;linux和windows系统。 什么是GPT4ALL&#xff1f; 不论学习任何东西&#xff0c;首先要明白它是个什么东西。 Open-source large language models that run …

【SSM进阶学习系列丨分页篇】PageHelper 分页插件集成实践

文章目录 一、说明什么是分页PageHelper介绍 二、导入依赖三、集成Spring框架中四、编写Service五、编写Controller六、编写queryAllByPage页面展示数据 一、说明 什么是分页 ​ 针对分页&#xff0c;使用的是PageHelper分页插件&#xff0c;版本使用的是5.1.8 。 ​ 参考文档…

定时任务的几种实现方式

定时任务实现的几种方式&#xff1a; 1、JDK自带 &#xff08;1&#xff09;Timer&#xff1a;这是java自带的java.util.Timer类&#xff0c;这个类允许你调度一个java.util.TimerTask任务。使用这种方式可以让你的程序按照某一个频度执行&#xff0c;但不能在指定时间运行。…

【智能优化算法】野狗智能优化算法(Dingo Optimization Algorithm DOA)

野狗智能优化算法(Dingo Optimization Algorithm DOA)是期刊“MATHEMATICAL PROBLEMS IN ENGINEERING”的2021年智能优化算法 01.引言 野狗智能优化算法(Dingo Optimization Algorithm DOA)该算法的灵感来自野狗的狩猎策略&#xff0c;即迫害攻击&#xff0c;分组策略和清除行…

crossover怎么打开软件 mac怎么下载steam crossover下载的软件怎么运行

CrossOver是一款Mac和Linux平台上的类虚拟机软件&#xff0c;通过CrossOver可以运行Windows的可执行文件。如果你是Mac用户且需要使用CrossOver&#xff0c;但是不知道CrossOver怎么打开软件&#xff0c;如果你想在Mac电脑上玩Windows游戏&#xff0c;但不知道怎么下载Steam&am…

C语言内存函数memcpy与memmove

一.memcpy的使用和模拟实现 1.函数原型 void* memcpy(void* destination, const void* source, size_t num); destination是目标内存块的指针 source是源内存块的指针 num是要复制的字节数 .函数memcpy从source的位置开始向后复制 num个字节 的数据到destination指向的内存位置…

免备案香港主机会影响网站收录?

免备案香港主机会影响网站收录?前几天遇到一个做电子商务的朋友说到这个使用免备案香港主机的完整会不会影响网站的收录问题&#xff0c;这个问题也是站长关注较多的问题之一。小编查阅了百度官方规则说明&#xff0c;应该属于比较全面的。下面小编给大家介绍一下使用免备案香…

现场面试题

这里写目录标题 1.sql1.1 只保留学生的最新成绩1.2 统计通话号码数1.3 更新地址 2.基础题2.1 请求序列第N位的值: 0, 1, 1, 2, ,3, 5, 8, 13, 21, 34.....第N位的值2.2 请写一段java代码&#xff0c;输出存在重复字母的单词 1.sql 1.1 只保留学生的最新成绩 表student中记录学…

成为一名厉害的黑客,必须知道的12个步骤,黑客入门学习

黑客攻防是一个极具魅力的技术领域&#xff0c;但成为一名黑客毫无疑问也并不容易。你必须拥有对新技术的好奇心和积极的学习态度&#xff0c;具备很深的计算机系统、编程语言和操作系统知识&#xff0c;并乐意不断地去学习和进步。 如果你想成为一名优秀的黑客&#xff0c;下…

市面上好用的AI工具有哪些?

市面上的AI工具数不胜数&#xff0c;选择合适自己的AI工具则需要考虑自己的需求&#xff0c;看是否能满足的使用需求。那么市面上又有哪些好用的AI工具呢&#xff1f; 泰迪智能科技拥有简单易用的大数据挖掘建模平台&#xff0c;能够让数据创造更大的价值。 功能板块&…

RK3576芯片规格,以及与RK3588对比

瑞芯微RK3576是一款高性能、低功耗的SoC&#xff08;系统级芯片&#xff09;处理器&#xff0c;适用于基于ARM的PC、边缘计算设备、个人移动互联网设备等多种应用场景。它采用Arm架构的八核心CPU&#xff0c;集成了GPU、MCU、NPU、VPU等多种计算核心&#xff0c;并具有丰富的外…

Go 语言基础之面向对象编程

1、OOP 首先&#xff0c;Go 语言并不是面向对象的语言&#xff0c;只是可以通过一些方法来模拟面向对象。 1.1、封装 Go 语言是通过结构体&#xff08;struct&#xff09;来实现封装的。 1.2、继承 继承主要由下面这三种方式实现&#xff1a; 1.2.1、嵌套匿名字段 //Add…

C# OpenCvSharp 图片找茬

C# OpenCvSharp 图片找茬 目录 效果 项目 代码 下载 效果 项目 代码 using OpenCvSharp; using System; using System.Diagnostics; using System.Drawing; using System.Windows.Forms; namespace OpenCvSharp_Demo { public partial class Form1 : Form { …

volatile 和 synchronzied 的区别

文章目录 概述volatilesynchornizedvolatile vs synchornized总结 概述 提起并发编程&#xff0c;我们不得不说起 volatile 和 synchronized 这两个关键字&#xff0c;这两个关键字也是面试中常常被问到的&#xff0c;下面我们分别介绍一下这两个关键字以及二者的异同。首先需要…

set_input_delay的理解

1&#xff0c;set_input_delay约束理解 input_delay是指输入的数据到达FPGA的pad引脚时相对于时钟边沿的延迟有多大&#xff0c;单位是ns&#xff0c;数值可以是正&#xff0c;也可以是负。通过set_input_delay约束告诉编译器输入时钟和输入数据的相位关系。如下图所示假设时钟…

【busybox记录】【shell指令】shuf

目录 内容来源&#xff1a; 【GUN】【shuf】指令介绍 【busybox】【shuf】指令介绍 【linux】【shuf】指令介绍 使用示例&#xff1a; 打乱内容 - 默认输出 打乱内容 - 最多输出n行 打乱内容 - 将输出写入文件 打乱内容 - 重复输出 打乱内容 - 打乱本条指令的参数 打…

Verilog刷题笔记47

题目&#xff1a; From a 1000 Hz clock, derive a 1 Hz signal, called OneHertz, that could be used to drive an Enable signal for a set of hour/minute/second counters to create a digital wall clock. Since we want the clock to count once per second, the OneHer…

taos数据库服务器安装

涛思数据库服务器安装分为两种情况 一。新服务器直接安装&#xff08;非常好&#xff09; 二。旧服务器删除后删除干净再安装&#xff08;麻烦得很&#xff09; 先来讲解一下情况一&#xff1a; 找需要的taos安装版本链接&#xff1a;https://docs.taosdata.com/releases/tde…

基于Spring Boot的家具网站设计与实现

基于Spring Boot的家具网站设计与实现 开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea 系统部分展示 系统前台主界面图&#xff0c;用户可进入家具网站可查看…

高等数学笔记(下中)

曲线积分 第一类曲线积分&#xff1a;对弧长的积分计算方法 定理&#xff1a;设 f ( x , y ) f(x,y) f(x,y)在曲线弧 L L L上有定义且连续&#xff0c; L L L的参数方程是 { x φ ( t ) y ψ ( t ) ( α ≤ t ≤ β ) \begin{cases} x\varphi(t)\\ y\psi(t) \end{cases}(\a…