Python数据分析【第3天】| 进度条(tqdm模块)

  • List item

系列文章目录

第1天:读入数据
第2天:read()、readline()与readlines()



前言

你有没有这样的经历,在运行一段需要跑很久的循环代码时,盯着命令行上单调闪烁着的光标,仿佛它能闪到天荒地老,闪到宇宙尽头。如果有的话,那么今天的内容就是专为“等待焦虑综合症”患者准备的特效药。

一、今天所学的内容

处理大量数据时,常会遇到耗时很长的循环。今天学到的内容是没有实际作用,但能极大提高用户体验的——python进度条(tqdm模块)。

二、python知识点详解

1.安装与导入

tqdm 是一个方便且易于扩展的Python进度条,他可以在python执行长循环时在命令行界面实时地显示一个进度提示信息,包括执行进度、处理速度等信息,且可在一定程度上进行定制。

首先,我们使用pip来安装tqdm模块

pip install tqdm

然后就可以在python脚本中导入它

from tqdm import tqdm

2.基本用法

tqdm的用法也很简单,只需要封装任意的迭代器 tqdm(iterator)即可。

举个简单的例子:

import time
from tqdm import tqdm

for i in tqdm(range(100), ncols=100):
     time.sleep(0.1)

其中ncols参数用于指定进度条的长度,也可以不设置。这里要注意传入tqdm的一定要是可迭代的对象,比如上面的range(1000)就是一个简单的迭代对象,也可以直接传List进去。

3.定制自己的进度条

如果想对进度条进行个人定制,可以实例化一个tqdm类,然后通过传参和调用tqdm类中的方法来实现定制。这里只举一个简单的例子:定制进度条的名字。

import time
from tqdm import tqdm

pbar = tqdm(range(100), desc="My Processing: ")
for i in pbar:
	time.sleep(0.1)
pbar.close()

有点类似于打开文件的操作,一个实例化的tqdm在使用完毕后通过close()方法进行清理。我们也可以像文件操作那样,使用with语句来避免这些麻烦的操作,让它在使用结束后自动清理。

import time
from tqdm import tqdm

with tqdm(range(100), desc="My Processing: ", ncols=100) as pbar:
    for i in pbar:
        time.sleep(0.1)

4.注意事项

在使用tqdm显示进度条时,如果循环中有print(…)等输出语句,则会在每次输出时打断当前进度条,并在输出后创建一个新的进度条继续显示进度,最终导致显示很多多余的进度条,影响美观。这时可以把print(…)语句改写为tqdm.write(…),来防止这种情况的出现。

for i in tqdm(range(100), ncols=100):
     tqdm.write(i)

总结

以上就是今天要讲的内容了,时间太晚了,定制进度条部分就没有展开讲,但一般也够用了,如果感兴趣的话可以查一下tqdm的各种参数和方法的用法,还是蛮容易的。有没有觉得加上进度条之后自己的代码运行起来显得高级了一点呢,哈哈哈哈。祝大家变得更强。

今天的小tips:

  • 尝试选择几件容易做到的事,坚持每天做,比如写三四句话的日记,比如每天回家首先把卧室的地扫一下。这些小事看起来微不足道,但它会慢慢成为一个锚点,逐渐稳定你的身心,最终让整个生活都变得有规律起来。

Guess you like

Origin blog.csdn.net/FANFANHEBAOER/article/details/117375728