You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现tqdm进度条单行显示,避免逐行刷新?

解决tqdm进度条单行显示同时打印元素的问题

你遇到的问题是因为print()会输出换行符,导致tqdm的进度条每次都被挤到新行。这里有两个简单的解决办法:

方法一:使用tqdm自带的write方法

tqdm专门提供了write()方法,用来在不干扰进度条的前提下输出内容,它会自动处理输出流,保证进度条始终在单行显示。修改后的代码如下:

from tqdm import tqdm
from time import sleep

def test():  
    my_list = ['a', 'b', 'c', 'd', 'a', 'b', 'c', 'd', 'a', 'b', 'c', 'd']
    for i in tqdm(my_list):
        tqdm.write(i)  # 替换原来的print(i)
        sleep(.1)

方法二:修改print的结束符并强制刷新

如果不想用tqdm的write方法,也可以修改print()的end参数为回车符\r,同时开启强制刷新,这样每次打印的内容会覆盖当前行,进度条就能保持在下方单行显示:

from tqdm import tqdm
from time import sleep

def test():  
    my_list = ['a', 'b', 'c', 'd', 'a', 'b', 'c', 'd', 'a', 'b', 'c', 'd']
    for i in tqdm(my_list):
        print(i, end='\r', flush=True)  # 替换原来的print(i)
        sleep(.1)
    print()  # 循环结束后换行,避免后续内容和最后一个元素重叠

注意:第二种方法中,打印的元素会覆盖当前行的内容,循环结束后加个空print()可以避免后续输出和进度条区域混淆。

内容的提问来源于stack exchange,提问作者Rajesh Patnaik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 08:21:34