J'ai un script qui utilise pexpect pour démarrer un programme CLI. Cela fonctionne un peu comme un shell où vous obtenez une invite où vous pouvez entrer certaines commandes.python, définir le type de terminal dans pexpect
Le problème que j'ai, je pense, est que ce programme utilise une invite colorée.
C'est ce que je fais
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)
Ceci est la sortie:
> 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>'
Pour une raison quelconque le premier codage couleur rapide borkens des choses et a.before à la ligne 8 est brouillées, normal L'impression ne fonctionne pas, même si je vois que la commande à la ligne 5 a produit beaucoup de sortie.
Est-ce que quelqu'un sait ce que le problème pourrait être, ou est-il possible de définir le type de terminal dans pexpect pour éviter les couleurs?
J'utilise tcsh
une idée pourquoi spawn avec env = xxx argument ne fonctionne pas ici? – Strin