Как очистить только часть экрана, используя богатый PythonPython

Программы на Python
Ответить
Anonymous
 Как очистить только часть экрана, используя богатый Python

Сообщение Anonymous »

Я хочу очистить только часть экрана, используя богатый Python. rich есть функция, которую можно использовать для очистки всего экрана, но я хочу очистить только его часть. Я попытался сделать то же самое, используя escape-коды ANSI, чтобы сохранить и восстановить положение экрана. Вот мой код:

Код: Выделить всё

from pynput.mouse import Controller
from rich.console import Console

console = Console()

def get_mouse_coordinates():
console.print("Welcome to mouse coordinate finder:\n")
console.print("\x1b[s", end="") # ANSI Escape code to save cursor position
previous_position = None

while True:
current_position = Controller().position # Current position of the mouse
if current_position != previous_position: # Only update the screen if the cursor is moved
x_coordinate, y_coordinate = current_position
console.print("\x1b[u", end="") # ANSI Escape code to restore cursor position
console.print(f"X Coordinate = {x_coordinate}   \nY Coordinate = {y_coordinate}   ")
previous_position = current_position

if __name__ == "__main__":
get_mouse_coordinates()
Логика моего кода заключается в том, что сначала он сохраняет положение экрана, из которого экран должен быть очищен. Если курсор перемещается, он перемещается в сохраненную позицию экрана и перезаписывает предыдущие координаты мыши, печатая новые.
Я могу очистить весь экран и распечатать приветственное сообщение с помощью мыши координаты целиком, без необходимости очищать только координаты мыши при каждом перемещении курсора, но это сложно сделать, если предварительно нужно напечатать много строк. Итак, я хочу очистить здесь только часть экрана.
Мой код работает как надо, но когда я печатаю escape-коды ANSI для сохранения и восстановления положения экрана, чего нет предоставленная rich, escape-последовательность ANSI не включается, как когда я печатаю escape-код ANSI, предоставленный rich, и мне приходится включать ее вручную:

Код: Выделить всё

import os
os.system("")
Это работает, но только для Windows. Как мне это исправить? И есть ли альтернативный способ очистить только часть экрана?


Подробнее здесь: https://stackoverflow.com/questions/793 ... -in-python
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»