[pexpect] problemas al tratar de ejecutar un script
Milton Galo Patricio
minoztro en gmail.com
Lun Dic 18 03:15:45 CET 2006
Hola lista:
en un thread anterior me recomendaron pexpect y muchas gracias por
los consejos.....instale el modulo pexpect pero ahora tengo un
problema cuando echo a correr el siguiente codigo:
import pexpect
hijo=pexpect.spawn('pg_dump tpv -u -D -t tipo_operacion -Fc >
/home/minostro/Desktop/prueba.sql')
hijo.expect('Nombre de usuario: ')
hijo.sendline('minostro')
hijo.expect('Contraseña: ')
hijo.sendline('simple')
print hijo.before
el script rompe y me dice:
python codigo_pexpect.py
Traceback (most recent call last):
File "codigo_pexpect.py", line 7, in ?
hijo.expect('Contraseña: ')
File "/usr/lib/python2.4/site-packages/pexpect.py", line 1064, in expect
return self.expect_list(compiled_pattern_list, timeout, searchwindowsize)
File "/usr/lib/python2.4/site-packages/pexpect.py", line 1132, in expect_list
raise EOF (str(e) + '\n' + str(self))
pexpect.EOF: End Of File (EOF) in read_nonblocking(). Exception style platform.
<pexpect.spawn object at 0xb7daa12c>
version: 2.1 ($Revision: 395 $)
command: /usr/bin/pg_dump
args: ['/usr/bin/pg_dump', 'tpv', '-u', '-D', '-t', 'tipo_operacion',
'-Fc', '>', '/home/minostro/Desktop/prueba.sql']
patterns:
Contraseña:
buffer (last 100 chars):
before (last 100 chars): en la línea de comandos (el primero es «>»)
Prueba «pg_dump --help» para más información.
after: pexpect.EOF
match: None
match_index: None
exitstatus: 1
flag_eof: True
pid: 12952
child_fd: 3
closed: False
timeout: 30
delimiter: pexpect.EOF
logfile: None
maxread: 2000
ignorecase: False
searchwindowsize: None
delaybeforesend: 0.1
delayafterclose: 0.1
delayafterterminate: 0.1
Se que el error es el caracter 'ñ', entonces se me ocurrio poner de
esta forma el script:
import pexpect
hijo=pexpect.spawn('pg_dump tpv -u -D -t tipo_operacion -Fc >
/home/minostro/Desktop/prueba.sql')
hijo.expect('Nombre de usuario: ')
hijo.sendline('minostro')
hijo.expect('.*: ')
hijo.sendline('simple')
print hijo.before
para solucionar el problema de la 'ñ' puse una expresión regular, pero
aún así me imprime un espacio en blanco y no me genera el archivo
prueba.sql...me pueden seguir ayudando por favor, gracias
--
Milton Inostroza Aguilera
Más información sobre la lista de distribución Python-es