[Python-es] Sigue: Paso de comandos a un programa desde Python
Miguel Ángel Vilela
miguev en gulic.org
Mar Sep 10 19:43:57 CEST 2002
On Mon, Sep 09, 2002 at 03:02:52PM +0200, Tomás Javier Robles Prado wrote:
> Hola a todos,
>
> Siguiendo con el tema de mi post anterior, me he informado un poco
> y más o menos ya sé como tengo que hacerlo. Mi idea es ejecutar
> overnet de este modo:
>
> ./overnet < mi_tuberia > log.txt
>
> y mi programa de Python se encargaría de:
>
> - Escribir comandos de overnet en la tuberia cada cierto tiempo
> - Analizar la salida de dichos comandos y mostrarla en pantalla ya
> - procesada
>
> El caso es que mirándome el módulo pipes no me aclaro y con popen
> tampoco. Lo único que necesito es escribir en una tubería cosas como
> 'vd' , 'vu' , etc periodicamente.
>
> ¿Alguna idea?
Algo parecido hago yo con passwd y smbpasswd, salvo que nuestras
negociaciones son cortas (cambiar claves de usuarios). Creo que lo que
necesitas es justo lo que estuve buscando: pexpect
pexpect te permite "hablar" a un proceso (hijo), controlándolo como si
estuvieras tecleando en una consola, y recoger lo que el proceso te
devuelva. Además, puedes "esperar" a que el proceso te diga algo que
encaje con una expresión regular, por lo que no tienes que saber qué
te dirá exactamente el proceso hijo. Si quieres puedes hasta pasarle
el control al humano que esté al teclado, aunque para esto deberías
estar en una consola (o emulador de terminal).
En la página del módulo tienes un ejemplo de cómo un script entra en
un ftp y saca un listado de lo que hay: http://pexpect.sf.net
Ya que hay gente aquí que es desarrollador(a) Debian: ¿hay intención
de empaquetar pexpect?
Saludos.
--
--==-- --==-- Miguel Ángel Vilela --==-- --==--
a.k.a miguev at fmat.ull.es, GULiC, Barrapunto & IRC-Hispano
GULiC - Grupo de Usuarios Linux de Canarias - http://www.gulic.org
Curso de Introducción a Linux para Alumnos - http://cila.gulic.org
Alumno en la Fac. de Matemáticas - http://www.fmat.ull.es/~miguev/
Public GPG key at http://search.keyserver.net (search for: miguev)
Linux Reg. User #184518 - Debian GNU/Linux SID - kernel 2.4.18-xfs
-- Linux Driver Petition #73209 --- No ePatents Petition #80354 --
Por definición, cuando está investigando lo desconocido, no sabe que va a
encontrar.
-- El último primcipio.
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: no disponible
Type: application/pgp-signature
Size: 189 bytes
Desc: no disponible
URL: <http://mail.python.org/pipermail/python-es/attachments/20020910/08f9535e/attachment.pgp>
Más información sobre la lista de distribución Python-es