Python: обновить последнюю строку и другие строки асинхронно

Скажем, у меня есть множество обновляющей информации и некоторая переменная, которая должна постоянно отображаться на консоли. Я хочу сделать следующий эффект:

Info 1
Info 2
Info 3
...
Info n
Var1: xxx, Var2: xxx <- The last line on the window of console

Информация и переменные могут меняться по-разному, как заставить эти две части асинхронно меняться в консоли?

2 ответа

На самом деле нет необходимости менять эти части асинхронно. Вы можете использовать \r символ, чтобы вернуть каретку в последней строке, а затем использовать несколько пробелов, чтобы очистить его. Следующий код Python должен сделать свое дело.

s = ''
for info in infos:
        print "\r", " " * len(s), "\r"
        print "info %s" % info
        s = "var1: %s, var2: %s" % (var1, var2)
        print s,

Вопрос в том, что печать будет настолько быстрой, что вы не сможете запечатлеть вывод глазами, поэтому может потребоваться добавить функцию sleep() во время печати.

Для Unix используйте curses.

В Windows одним из вариантов является использование модуля консоли.

Другие вопросы по тегам