Переместить курсор консоли вверх

#python #console #ansi-escape

#python #консоль #ansi-escape

Вопрос:

Я попытался создать простые часы в верхнем левом углу консоли, обновляя каждую секунду:

 def clock():
    threading.Timer(1.0, clock).start()
    print('33[0;0H'   time.asctime(time.localtime()))
  

Я использовал colorama пакет для включения escape-последовательностей ANSI в Windows, но, похоже, escape-код просто переместит курсор на указанное количество пикселей, а не на позицию.


Как я могу переместить курсор в нужную позицию (0, 0) ?

Ответ №1:

Строка и столбец начинаются с 1, а не с 0.

 print('33[1;1H'   time.asctime(time.localtime()))
  

или короче

 print('33[H'   time.asctime(time.localtime()))
  

Вам также может потребоваться сохранить и восстановить позицию с помощью ESC-7 и ESC-8.

См. http://ascii-table.com/ansi-escape-sequences-vt-100.php для получения списка кодов.

Барри