Вложенный tqdm, pretty print
Как сделать так, чтобы K уровней tqdm-ов выписывалось ровно в K строчек?
Пример:
from tqdm import tqdm
from time import sleep
for _ in tqdm(range(5), "All", ncols=80, position=0):
for _ in tqdm(range(100), "Sub", ncols=80, position=1, leave=False):
sleep(0.01)
Выводит:
А ожидаю только 2 строчки All и Sub.
Перепробовал разные комбинации параметров. Иногда в песочнице в браузере работает, а на винде локально -- нет. Модуль colorama не помог тоже.
Ответы (2 шт):
Попробуйте так:
from tqdm.auto import tqdm
from time import sleep
for _ in tqdm(range(5), "All", position=0):
for _ in tqdm(range(100), "Sub", position=1, leave=False):
sleep(0.01)
Т.е. во-первых используйте tqdm.auto, он лучше определяет как оптимально общаться с конкретно вашим типом устройства вывода. И во-вторых уберите параметр ncols, он может мешать нормальному позиционированию элементов прогресс-бара.
Короче PyCharm-овский терминал на винде не поддерживает такое. Чтобы получить правильный вывод, надо поставить "Emulate terminal in output console" флажок или ждать, когда добавят поддержку. С этим флажком достаточно только leave=False во втором поставить.
