我正在编写一个具有多个线程的程序,因此为了记录信息,我使用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
答案 0 :(得分:0)
答案 1 :(得分:0)
您可以print
个退格键,如下所示:
import time, sys
t = 0
while True:
print('Seconds passed:', t, end='')
sys.stdout.flush()
time.sleep(1)
t += 1
print('\b'*20, end='')