У меня есть скрипт, который использует pexpect для запуска программы CLI. Это немного похоже на оболочку, где вы получаете подсказку, в которой вы можете ввести некоторые команды.
У меня проблема, я думаю, в том, что эта программа использует цветную подсказку.
Это то чем я занимаюсь
import pprint
import pexpect
1 a = pexpect.spawn('program')
2 a.expect("prompt>")
3 print "---------start------------"
4 print(a.before)
5 a.sendline("command")
6 a.expect("prompt>")
7 print "---------before------------"
8 pprint.pprint(a.before)
9 print "---------after------------"
10 pprint.pprint(a.after)
Это результат:
> python borken.py
---------start------------
A lot of text here from the enjoying programs start-up, lorem ipsum ...
---------before------------
' \x1b[0m\x1b[8D\x1b[K\x1b[1m\x1b[34m'
---------after------------
'prompt>'
По какой-то причине первая подсказка с цветовым кодированием все искажает, и a.before в строке 8 искажена, обычная печать не работает, даже если я вижу, что команда в строке 5 на самом деле произвела много вывода.
Кто-нибудь знает, в чем может быть проблема, или можно ли установить тип терминала в pexpect, чтобы избежать цветов?
Я использую оболочку tcsh