Я пишу программу с несколькими потоками, поэтому для регистрации информации я использую модуль регистрации Python. Однако у меня есть части приложения, в которых я хотел бы показать, сколько потока ожидает выполнения в той же строке, которая каждый раз перезаписывается. Я не хочу, чтобы в журнале отображалось несколько строк.
Я пытался использовать функцию sys.stdout.flush()
. К сожалению, это не работает.
Мой текущий код:
def log_flush(message, start, stop):
import logging, sys
logging.basicConfig(level=logging.DEBUG,
format='(%(threadName)-10s) %(message)s',
)
time = stop - start
logging.debug((str(message) + str(time)))
sys.stdout.write('\r')
sys.stdout.flush()
for i in range(0, 5):
log_flush("Time taken: ", 0, i)
Мой ожидаемый результат (после завершения выполнения):
(MainThread) Time taken: 4
Пока скрипт выводит:
(MainThread) Time taken: 0
(MainThread) Time taken: 1
(MainThread) Time taken: 2
(MainThread) Time taken: 3
(MainThread) Time taken: 4