Как перенести весь вывод терминала на строку выше?

У меня есть приложение, которое время от времени выводит строку в терминал, и параллельно с этим - бесконечный цикл с input('How are you? '). Цикл, выводящий строки и цикл, запрашивающий ввод - работают параллельно, и часто бывает такое, что во время ввода - появившаяся строка перекрывает поля ввода с "How are you? " и они накладываются друг на друга. Вопрос: как сделать так, чтобы во время ввода - все строки, генерируемые и выводимые на экран - переносились на одну строку вверх? В пример результата можно привести процесс установки приложения через sudo apt-get install, когда самой последней строкой выводится процент и статус-бар, а все названия файлов и исполняемых процедур переносятся на строку вверх, тем самым не накладываясь на статус-бар.


Ответы (2 шт):

Автор решения: kesha1225

Каретку на начало строки можно переносить с помощью \r

import sys
sys.stdout.write("\rhello")
→ Ссылка
Автор решения: aaa
// #1
fmt.Fprint(term, string([]byte{0x1B, '7'})) // save position
// print...
// print...
// print...
fmt.Fprint(term, string([]byte{0x1B, '8'})) // restore position
  
// #2
fmt.Fprint(term, "first line\n"))
fmt.Fprint(term, "second line\n"))
fmt.Fprint(term, string([]byte{0x1B, 'M'})) // up one line
fmt.Fprint(term, string([]byte{0x1B, 'M'})) // up one line
→ Ссылка