On 02/03/10 15:59, Carlos Herrera Polo wrote:

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.

De hecho Python es multiparadigma, puedes hacer programación imperativa "normal" sin utilizar objetos/clases (aunque los tipos básicos sí que son 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)

Ah, de acuerdo. Sólo era por comentarlo, que en Python ese tipo de nomenclatura no es idiomática.

http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html

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....

Entonces ya habías empezado bien con subprocess.Popen. Hay muchas formas de controlar el proceso una vez arrancado, aquí va un pequeño ejemplo que re-inicia la ejecución si pasados N segundos no ha terminado.

http://docs.python.org/library/subprocess.html

import subprocess
import time

def run_command(command, maxtime):
  popen = None
  while 1:
    if not popen:
        popen = subprocess.Popen(command)
        itime = time.time()
        print popen, itime
        continue
    elif popen.poll() is not None:
      break
    elapsed = time.time() - itime
    if elapsed > maxtime:
      popen.terminate()
      popen.wait()
      popen = None
      continue
    time.sleep(1)

  return popen.wait()

retcode = run_command(["comando", "arg1", "arg2"], 60)

--
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/

Responder a