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 <pyar...@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@python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ >
_______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/