TQDM цветной индикатор выполнения печати на нескольких строках - PullRequest
1 голос
/ 10 октября 2019

Я не уверен, почему мой индикатор выполнения TQDM разбивается на несколько строк, когда я добавляю цвет с помощью опции bar_format. Похоже, что это связано и с количеством итераций, потому что когда я запускаю один и тот же код с 10 итерациями вместо 1389, он не разделяется (см. Изображения). Кроме того, когда я запускаю тот же код без изменения цвета панели, он отлично работает.

Problem

Fewer iterations

No color

from tqdm import tqdm
from colorama import Fore

dnames = [...]  # List of directories
cmap = [  # List of colors, same length as `dnames`
    '\x1b[38;5;231m',
    '\x1b[38;5;194m',
    '\x1b[38;5;151m',
    '\x1b[38;5;114m',
    '\x1b[38;5;71m',
    '\x1b[38;5;29m',
    '\x1b[38;5;22m',
    '\x1b[38;5;22m',
    '\x1b[38;5;22m',
    '\x1b[38;5;22m'
    # ...may include many more colors
]

# Initialize progress bar and color variable
pbar = tqdm(dnames, unit='dir')
current_color = None

for i, dname in enumerate(dnames):

    # Update color of pbar if different from last iteration
    if current_color != cmap[i]:
        pbar.bar_format = "{l_bar}%s{bar}%s{r_bar}" % (cmap[i], Fore.RESET)
        current_color = cmap[i]

    # For loop body goes here

    # Update pbar
    pbar.update(1)

pbar.close()
...