Python 进度条tqdm

 在编写Python脚本时,尤其是那些需要处理大量数据或者执行耗时操作的脚本,监控任务进度是非常重要。

tqdm的安装

1
pip install tqdm -i https://pypi.tuna.tsinghua.edu.cn/simple/

  

基本用法

1
2
3
4
5
from tqdm import tqdm
import time
 
for i in tqdm(range(100)):
    time.sleep(0.1# 模拟一些耗时操作

  我们使用tqdm(range(100))替代了普通的range(100),这会在循环执行时显示一个进度条。

 

自定义进度条

tqdm 允许我们自定义进度条的许多属性,例如描述文字、进度条格式等:

这个代码里添加了desc参数来设置进度条的描述,ncols参数来设置进度条的宽度,ascii参数来使用ASCII字符显示进度条。

1
2
3
4
5
from tqdm import tqdm
import time
 
for i in tqdm(range(100), desc="进度条描述信息", ncols=100, ascii=True):
    time.sleep(0.1)

  

 

在函数中使用tqdm

可以在任何可迭代对象前使用tqdm,例如列表、生成器等:

 
1
2
3
4
5
6
7
8
9
10
11
from tqdm import tqdm
import time
 
 
def process_items(items):
    for _ in tqdm(items, desc="进度条描述信息"):
        time.sleep(0.1)
 
 
items = list(range(100))
process_items(items)

  

 

高级用法

tqdm 还支持嵌套进度条、在多线程和多进程环境中使用等高级功能。

嵌套进度条

当有多重嵌套循环时,可以使用tqdm的嵌套进度条:

1
2
3
4
5
6
from tqdm import tqdm
import time
 
for i in tqdm(range(3), desc="一层循环进度条描述信息"):
    for j in tqdm(range(100), desc="二层循环进度条描述信息", leave=False):
        time.sleep(0.01)

  

多线程和多进程

tqdm 可以与多线程和多进程一起使用,通过ThreadPoolProcessPool

1
2
3
4
5
6
7
8
9
10
11
12
13
from tqdm import tqdm
from concurrent.futures import ThreadPoolExecutor
import time
 
def process_item(item):
    time.sleep(0.1)
    return item
 
 
items = list(range(100))
 
with ThreadPoolExecutor(max_workers=4) as executor:
    list(tqdm(executor.map(process_item, items), total=len(items))) 
posted @   北京测试菜鸟  阅读(181)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示