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






Хотя я сам не использовал его, я считаю, что для этого обычно используется библиотека curses:
http://docs.python.org/library/curses.html
И инструкции:
http://docs.python.org/howto/curses.html#curses-howto
К сожалению, этот модуль недоступен в стандартной библиотеке для Windows. На этом сайте, по-видимому, есть решение для Windows:
http://adamv.com/dev/python/curses/
Да, не похоже, что он предназначен для работы с текущим терминалом. Похоже, у Джеффа есть то, что вы ищете.
Вот рецепт поваренной книги в ActiveState, чтобы вы начали. Он охватывает цвета и расположение.
[Обновлено: код pygments, представленный выше Хорхе Варгасом, - лучший подход. ]
Идеально. Это именно то, что я искал. Теперь мне просто нужно связать его с красивым модулем и немного очистить код. Спасибо.
Если вам нужны только цвета, вы можете позаимствовать реализацию у pygments. IMO он намного чище, чем у ActiveState
http://dev.pocoo.org/hg/pygments-main/file/b2deea5b5030/pygments/console.py
отлично, рад, что вам понравилось. Спасибо за лучший ответ!
Также есть пакеты срок цвет и термин. Последний может отключать вывод цвета, если stdout не является терминалом.
См. Также этот вопрос.
Думаю, не совсем то же самое. Вам нужно сделать «окно» с проклятиями, тогда как с Term :: ANSIScreen я могу вывести на терминал произвольное количество строк, используя стандартную функцию печати.