Lentitud comando os.system

Carlos Herrera Polo carlos.herrerapolo en gmail.com
Mie Dic 2 20:05:45 CET 2009


Excelente, gracias !
Quedo perfecto aplicando lo que sugeriste.

Saludos

El 2 de diciembre de 2009 13:26, heimy <ricardo.cardenes en gmail.com>escribió:

> 2009/12/2 Carlos Herrera Polo <carlos.herrerapolo en gmail.com>:
>
> > p = Popen(ls_comando , shell=True)
> > sts = os.waitpid(p.pid, 0)[1]
>
> ...
>
> > El problema esta en que no continua mi programa, sino que ejecuta el
> > "comando externo", pero me parece que el subproceso queda en memoria o no
> se
> > culmina, alguien tiene por favor experiencia con Popen ?
>
> En lugar de usar os.waitpid() puedes aprovechar que el objeto devuelto
> por Popen ya tiene su propio wait.
>
>   p = Popen(ls_comando, shell = True)
>    p.wait()
>
> El único problema (y podría ser parte del tuyo), como te indica la
> documentación de Popen.wait, es que si el programa dejó algo de salida
> (por la estándar o por error), el programa que has ejecutado quedará a
> la espera de que leas eso antes de terminar, así que no se cerrará y
> tu programa quedará a la espera eternamente:
>
>   p = Popen(ls_comando, shell = True)
>    p.communicate()
>   p.wait()
>
> te resuelve ese problema. Déjalo tal cual si no te interesa la salida
> para nada. En caso contrario, puedes tomar los datos devueltos por
> p.communicate() y tratarlos.
> _______________________________________________
> Lista de correo Python-es
> http://listas.aditel.org/listinfo/python-es
> FAQ: http://listas.aditel.org/faqpyes
>
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





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