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
可以与多线程和多进程一起使用,通过ThreadPool
或ProcessPool
:
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))) |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix