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>'
何らかの理由で、最初のプロンプトの色分けが問題を引き起こし、8行目のa.beforeが文字化けしているため、5行目のコマンドが実際に大量の出力を生成したことを確認しても、通常の印刷は機能しません。
誰かが問題が何であるかを知っていますか、または色を避けるためにpexpectで端末タイプを設定することは可能ですか?
私はtcshシェルを使用しています