Re: Lentitud comando os.system
heimy <[email protected]> Wed, 2 Dec 2009 18:26:58 +0000
| Newsgroups | gmane.comp.python.general.castellano |
|---|---|
| Message-ID | <[email protected]> |
2009/12/2 Carlos Herrera Polo <[email protected]>: > 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