无论终端窗口大小如何,如何让 tqdm 打印到同一行?

mat*_*hak 5 python bash tqdm

我正在使用 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)
Run Code Online (Sandbox Code Playgroud)

当我的终端窗口的宽度比 宽时"Bar desc (file %i)",tqdm 将根据我的需要打印进度条。但是,如果我减小终端窗口的宽度,tqdm 将打印为两行。每个 tqdm 更新都会打印到新行。即使我调整终端大小,有什么方法可以让 tqdm 打印到相同的两行吗?

我在 Ubuntu 中使用 bash 终端。

Léa*_*ris 0

有多种选择:

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

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

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