Python pexpect
yama
-
aloka Messages postés 5 Statut Membre -
aloka Messages postés 5 Statut Membre -
Bonjour,
voici mon code:
*************************************************
#!/usr/bin/python2.6
import os
import pexpect
os.chdir("/home/sst/stage/3.9.0/ref/HAL3/projects/M88_7105")
os.system('tcsh -c "source setenv_local_hal3_drivers_32bits; make total ; make install; make run"')
child = pexpect.spawn ('make run')
child.expect('(gdb) ')
child.sendline ('c')
**************************************************
en fait, aprés l'éxécution des commandes (os.system('tcsh -c "source setenv_local_hal3_drivers_32bits; make total ; make install; make run"') il apparaît "(gdb) " à ce niveau là il faut afficher "c\n" mais en exécutant le script, à l'apparition de "(gdb) " rien ne se passe.
je suis nouvelle en python et j'attends votre aide!
merci,
voici mon code:
*************************************************
#!/usr/bin/python2.6
import os
import pexpect
os.chdir("/home/sst/stage/3.9.0/ref/HAL3/projects/M88_7105")
os.system('tcsh -c "source setenv_local_hal3_drivers_32bits; make total ; make install; make run"')
child = pexpect.spawn ('make run')
child.expect('(gdb) ')
child.sendline ('c')
**************************************************
en fait, aprés l'éxécution des commandes (os.system('tcsh -c "source setenv_local_hal3_drivers_32bits; make total ; make install; make run"') il apparaît "(gdb) " à ce niveau là il faut afficher "c\n" mais en exécutant le script, à l'apparition de "(gdb) " rien ne se passe.
je suis nouvelle en python et j'attends votre aide!
merci,
1 réponse
-
Bonjour
Je ne connais pas pexpect, j'ai lu la doc
Qu'est ce que tu veux dire par : il apparaît "(gdb) " ??
Que (gdb) est affiché à l'écran ?
D'après ce que j'ai compris en lisant les docs, la fonction expect() n'affiche pas, elle attend.
Je ne comprend pas ce que tu écris.-
-
Et d'après ce que j'ai compris, quand expect() détecte ce qu'on lui a dit d'attendre, le programme passe à la ligne suivante.
Si ce qui était attendu est un objet unique (une chaîne, une regex, d'autres trucs), on peut n'écrire que expect(quelquechose), le passage à la ligne suivante suffit.
Mais on peut aussi ordonner à expect() d'attendre une liste, et dans ce cas, il faut écrire i = expect(quelquechose) et après la ligne expect on place un code avec conditions:if i==0: .... if i==1: .... etc
C'est ça ? -
-
Mon précédent post était une question générale, pas liée au code de yama
Pour ce qui est de son code, je comprends qu'après détection de "(gdb) " , il doit y avoir affichage de la lettre c à l'écran avec retour du curseur à la ligne suivante.
Mais "elle affiche"c" ", c'est quoi le 'elle' dans cette phrase ? -
-