[Python-es] Consulta sobre control de procesos

Arnau Sanchez pyarnau en gmail.com
Mar Mar 2 12:46:31 CET 2010


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



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