Как переносить курсор на строку вверх на 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")
→ Ссылка