@vovka_losira

Python как обновить вывод в консоли?

Хочу выводить информацию о работе программы.
Пример:

1 ядро: 50 s
2 ядро: 43 s
3 ядро: 55 s

Как в терминале обновлять конкретную строку?
  • Вопрос задан
  • 1341 просмотр
Пригласить эксперта
Ответы на вопрос 3
@dmshar
Ну, например, так:
ts = ['1 ядро: 50 s',
'2 ядро: 43 s',
'3 ядро: 55 s']
for ln in ts:
    print(ln, end="\r")


Если же вам надо кардинальное решение, с обновлением всей консоли, то вот так:
(я тут навставлял задержек и смещений, что-бы лучше был виден результат, в реальной программе это конечно надо будет подчистить под ваши конкретные требования)

import time
ts = ['1 ядро: 50 s',
'2 ядро: 43 s',
'3 ядро: 55 s',
'4 ядро 88  s']
   
print(ts[0])
print(ts[1])
time.sleep(3)
print("\033[H\033[J ")
print(ts[2])
print(ts[3])
time.sleep(3)
print("\033[H\033[J ")
print(ts[0])
print(ts[1])


В Windows работает.
Ответ написан
Комментировать
Vindicar
@Vindicar
RTFM!
Кури curses или аналоги. Но встроенный модуль curses работает только под линуксом, а под винду нужно поискать что-то другое, типа asciimatics или unicurses.
Ответ написан
Комментировать
@This_is_MonoliT
Можно вот так

import os
import time
print("Прошла 1 секунда")
time.sleep(1)
os.system("cls")
print("Прошли 2 секунда")
time.sleep(1)
os.system("cls")
print("Прошли 3 секунда")
time.sleep(1)
os.system("cls")

В коде будет очишаться консоль и выводится новая строка. Это был пример на Windows. Я показал лишь 1 из способов. Но стоит прислушаться у людям пооптынее!)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы