tqdm和zip组合使用时无法显示进度条-解决办法

问题

单独对于可迭代对象iterator使用tqdm时,结合循环就可以在终端显示进度条, 以直观展示程序进度,如下:

from tqdm import tqdm
textlist = []
for i in range(10):
    textlist.append(i)
for txt in tqdm(textlist):
	ans = txt

image-20220825171641697

其中右边的 10/10 表示的是 当前循环进度/循环总量。但是当tqdm和zip组合使用时就无法显示进度条了 如下:

from tqdm import tqdm
textlist = []
for i in range(10):
    textlist.append(i)
for txt in tqdm(zip(textlist,textlist)):
	ans = txt

image-20220825171855778

解决:

使用tqdm自带的zip包,from tqdm.contrib import tzip,即可实现zip的功能,也可以显示进度条,不过要注意的是,tqdm的版本要>=4.42.0。查看tqdm的版本号在centos中可以使用pip list查看所有的包再找到tqdm,当然最方便的是使用 pip show tqdm 来直接显示 tqdm包的信息,如下:

image-20220825180946552

最后问题解决如下:

from tqdm.contrib import tzip
textlist = []
for i in range(10):
    textlist.append(i)
for txt in tzip(textlist,textlist):
	ans = txt

image-20220825181057060

posted @ 2022-08-25 18:14  jacknie23  阅读(545)  评论(0编辑  收藏  举报