tqdm 的内部打印问题及其解决方案
在使用 tqdm 库创建进度条时,如果内部使用了 print() 函数,可能会导致进度条重复打印。这是因为进度条工作原理是不断刷新当前行文本,而 print() 函数会换行,导致 tqdm 无法刷新其之前的文本。
要避免此问题,请不要在 tqdm 循环内部使用 print() 函数。相反,您可以使用环境变量进行调试,如下所示:
import os env = os.getenv('DEBUG') if env != '1': iterable = tqdm(range(100)) else: iterable = range(100) for i in iterable: time.sleep(0.1) if env == '1': print(i)
在此示例中,如果 debug 环境变量设置为 ‘1’,则将使用标准 python 迭代器,而不会出现进度条。否则,将使用 tqdm 创建进度条。