Python, "стирание" предыдущей строки
Вот напишем к примеру код:
while True:
t = input("> ")
if t == "0":
print("Значение 0")
elif t == "1":
print("Значение 1")
clearstr(5)
Где clearstr() - функция, которая будет стирать предыдущую строку через параметр time = 5 (секунд)
Как можно реализовать такую функцию?
Ответы (2 шт):
Автор решения: Amgarak
→ Ссылка
Можно воспользоваться Таймером, вот вам простой и наглядный пример:
import threading
import os
import time
def clear_console():
os.system('cls' if os.name == 'nt' else 'clear')
threading.Timer(5, clear_console).start()
iter_i=0
while True:
iter_i+=1
print(f"!!!{iter_i}")
time.sleep(1)
Если нам нужно почистить не всю консоль, а только предыдущею строку:
import threading
import os
def clear_console():
print("\033[F\033[K", end="", flush=True)
# Возврат на предыдущую строку и очистка ее
os.system('cls' if os.name == 'nt' else 'clear')
print("Первая строка")
print("Вторая строка")
threading.Timer(5, clear_console).start()
input()
На эту тему был неплохой ответ тут.
Для PyCharm можете воспользоваться уловкой:
clear = "\n" * 100
print(clear)
Это конечно не совсем очистка, но как вариант)
Автор решения: Алексей Р
→ Ссылка
Работает в PyCharm
import time
while True:
t = input("> ")
if t in ["0", "1"]:
print(f"Значение {t}", end='')
time.sleep(5)
print('\r', end='')
> 0
> 1
> 0
Значение 0