Как переносить курсор на строку вверх на python
Пример: Через функцию print("Текст, который не трогаем\nhello\nworld") выводится в консоль 3 строки:
Текст, который не трогаем
hello
world
Нужно с командной строки стереть вторую и третью строчку и заменить их на другой текст. Будет выглядеть примерно так:
Текст, который не трогаем
Изменили текст№1
Изменили текст№2
Ответы (2 шт):
Автор решения: Amgarak
→ Ссылка
Могу предложить использовать ANSI escape-коды :
import os
os.system('') # вкл ANSI escape-кодов для win
print("Текст, который не трогаем\nhello\nworld")
print("\033[2;1H\033[J", end="")
print("Изменили текст№1\nИзменили текст№2")
print("Логи\n"*5)
print("Текст, который не трогаем\nhello\nworld")
print("\033[2A\033[J", end="")
print("Изменили текст№1\nИзменили текст№2")
Автор решения: Fox Fox
→ Ссылка
Вот, если я правильно понял задание, исходя из заголовка, поскольку далее речь идёт уже о заменах, а не о позиции курсора. Готовый скрипт, демонстрирующий работу с позицией курсора:
import os
import ctypes
def lib_set_console_position(x=0, y=0):
class COORD(ctypes.Structure):
_fields_ = [("X", ctypes.c_short), ("Y", ctypes.c_short)]
ctypes.windll.kernel32.SetConsoleCursorPosition(ctypes.windll.kernel32.GetStdHandle(-11), COORD(x, y))
# Пример использования
lib_set_console_position(10, 5)
os.system("pause")