如何让tqdm不受终端窗口大小影响而打印在同一行?

4
我正在使用tqdm来绘制进度条,并希望tqdm无论终端窗口大小如何都能覆盖相同行。请考虑以下代码:
from tqdm import trange
from time import sleep
t = trange(100, desc='Bar desc', leave=True)
for i in t:
    t.set_description("Bar desc (file %i)" % i)
    t.refresh() # to show immediately the update
    sleep(0.01)

当我的终端窗口宽度大于"Bar desc (file %i)"时,tqdm会按照我期望的方式打印进度条。然而,如果我缩小终端窗口的宽度,tqdm将打印两行。每个tqdm更新都将打印到新的一行。是否有任何解决方法可以让tqdm即使在调整终端大小后也能打印在同样的两行?
我正在使用Ubuntu中的bash终端。
1个回答

0

有多种选择:

要么查询终端宽度并相应地修剪您的栏 linewidth=$(($(tput cols) - 1)) 要么禁用换行

禁用换行: ncurses tput rmam ANSI:'\x1B[?7l`

启用换行: ncursestput smam ANSI:'\x1B[?7h`


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接