[Python-es] Consulta sobre control de procesos

Carlos Herrera Polo carlos.herrerapolo en gmail.com
Mar Mar 2 15:59:41 CET 2010


Gracias Arnau por las sugerencias.
No programo en Python, realmente no programo nada desde hace varios años, es
por eso que no entiendo al 100% la programacion orientada a objetos.
Comence a programar en BASIC !, luego en Pascal y termine en PowerBuilder,
de ahi herede ciertas costumbres, como por ejemplo ... ls significa (local
string), de manera que en cualquier momento puedo saber el tipo de dato,
bueno, esto es mas por costumbre que otra cosa. Hoy me dedico a la gestion
de un area de TI, desde el 2000, asi que perdi el "hilo" de la programacion.

La idea del programita es darle una solucion a mis usuarios para ahorrar
costos de licencias de un programa en Windows (que por obvias razones no
puedo indicar aca el nombre).
El tema es que este programa lo he instalado en una PC y opte por hacer el
desarrollo en Python debido a las numerosas librerias que cuenta, como por
ejemplo leer el correo por imap, enviarlo por smtp,etc..etc.

Los usuarios envian un correo con documentos adjuntos al "programa python",
este lee el buzon cada 30 segundos por IMAP y descompone los adjuntos
grabandolos en un directorio de la PC, luego, con la funcion que les envie
invoco a "executable.exe" para que los procese, y luego, con el resultado
del programa (que es un tercer archivo) se lo envio de regreso al usuario
por la libreria SMTP.

Todo esto funciona bien, el tema es que "ejecutable.exe" a veces se queda
como "pegado" y veo que en los procesos de Windows tengo varios
ejecutable.exe, asi que cada ciertos dias estoy obligado de revisar que esto
no ocurra, ya que la herramienta deja de trabajar....

Talvez la idea seria hace que ejecutable.exe corra como un subproceso, para
controlarlo, no se.. no se mucho de esto

Mil gracias por su interes.


El 2 de marzo de 2010 06:46, Arnau Sanchez <pyarnau en gmail.com> escribió:

> On 01/03/10 22:46, Carlos Herrera Polo wrote:
>
>  Window$ para ver si el proceso ejecutable.exe sigue en memoria y tengo
>> que "matarlo" manualmente para que el programa siga operando bien.
>> Lineas mas abajo adjunto el codigo.
>> Gracias de antemano por las sugerencias.
>>
>
> Podemos darte muchas sugerencias, pero mejor que preguntes algo concreto
> :-)
>
>
>      def fn_proceso(self,as_origen,as_modificado,as_resultado):
>>         # Procesa dos archivos
>>
>>         ls_comando='ejecutable.exe '
>>
>>         ls_origen = os.path.abspath(as_origen)
>>         ls_modificado = os.path.abspath(as_modificado)
>>
>>         ls_comando = ls_comando + ' /original="'+ ls_origen + '"
>> /modified="' + ls_modificado + '" /outfile="' + as_comparacion + '" /RTF
>> /V /S'
>>
>>         p = Popen(ls_comando , shell=True)
>>         p.communicate()
>>         p.wait()
>>
>>         return
>>
>
> Algunas cosas:
>
> - ¿Por qué empezar variables con "ls_"? es muy repetitivo y no aporta
> información.
> - La construcción de ls_comando no es muy bonita. Mira si puedes usar
> listas+join, o al menos interpolación de cadenas.
> - Usas la shell cuando no es necesario: la única diferencia cuando
> shell=False es que comando es una lista (que suele ser incluso más cómoda de
> generar que una cadena).
> - No es idiomático hacer un return al final de una función si ésta no
> devuelve nada.
>
> Y ahora yo pregunto: ¿este script hace ya lo que querías? si es que no,
> ¿qué le falta?
>
>
> --
> http://www.arnau-sanchez.com
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20100302/d62319cb/attachment.html>


Más información sobre la lista de distribución Python-es