Как создать текст внизу терминала и редактировать его отдельной функцией? Python
Как сделать так, чтобы внизу консоли можно было добавить свой текст и редактировать его функцией наподобее dtext.edit("Hello!", down). 
Ответы (1 шт):
Автор решения: eri
→ Ссылка
Для консолей совместимых с ECMA-48 (большинство Линукс консолей) управление ведется через ESC-последовательность.
Напиши свою функцию принт, которая будет обновлять прогресс-бар
ESC = b'\x1B' # Начинает ESC-последовательность
LF = b'\x0A' # \n Перевод на следующую строку
CR = b'\x0D' # \r Перевод в начало строки
CSI = b'[' # Ввод управляющей последовательности
EL = b'K' # Очистить строку. 2 - всю строку
import time
import sys
import shutil
screen_size = shutil.get_terminal_size()
sys.stdout.buffer.write(LF*screen_size.lines)
# прокрутить экран в конец
i = 0 # счётчик
def nprint(text):
global i
sys.stdout.buffer.write(ESC+CSI+b'2'+EL+CR)
# стирает строчку и переходит в начало
print(text)
# на свободной строчке пишем текст и переходим на новую
print('progress: '+ '|'*i + ' '*(10-i) , i*10, '%', end='')
# а потом обновляем прогресс-бар
# end='' - значит остаемся в строке
sys.stdout.flush()
# для отрисовки недопечатанной строки
i+=1
for text in ['один','два','три','ЧЕТЫРЕ','пять','шесть']:
nprint(text)
time.sleep(1)
Перевод документации https://www.opennet.ru/cgi-bin/opennet/man.cgi?topic=console_codes&category=4
Кроссплатформенное управление терминалом я рекомендую делать через https://github.com/tartley/colorama Там есть управление кареткой и цветом.