tqdm嵌套循环无进度条显示问题求助
解决嵌套循环中tqdm不显示进度条的问题
直接给你几个可行的解决办法,按顺序尝试即可:
方法1:手动指定进度条格式
给外层和内层的tqdm添加bar_format参数,强制渲染进度条样式:
from tqdm import tqdm import numpy as np for j, array in tqdm(enumerate(avgd_waves), desc="Check for nan Values", bar_format="{l_bar}{bar:10}{r_bar}{bar:-10b}"): for k, point in tqdm(enumerate(array), desc="Read Individual Array", leave=False, bar_format="{l_bar}{bar:10}{r_bar}{bar:-10b}"): if np.isnan(point): avgd_waves[j][k] = 0
这个参数直接定义了进度条的显示结构,确保终端能输出可视化进度条。
方法2:强制启用进度条并适配终端宽度
如果方法1无效,试试添加disable=False和dynamic_ncols=True参数:前者强制tqdm不自动禁用进度条,后者自动适配终端宽度避免格式错乱:
for j, array in tqdm(enumerate(avgd_waves), desc="Check for nan Values", disable=False, dynamic_ncols=True): for k, point in tqdm(enumerate(array), desc="Read Individual Array", leave=False, disable=False, dynamic_ncols=True): if np.isnan(point): avgd_waves[j][k] = 0
方法3:适配Jupyter环境
如果是在Jupyter Notebook/Lab中运行,替换成tqdm.notebook.tqdm:
from tqdm.notebook import tqdm # 后续循环代码保持不变
另外提个小优化:你的代码里np.isnan(point) == True可以简化成np.isnan(point),逻辑完全一致,写法更简洁。
内容的提问来源于stack exchange,提问作者Damocles
相关产品推荐
相关产品推荐

