Lentitud comando os.system

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


Gracias por la sugerencia, lei un poco la documentacion (bastante
complicada) y utilice estas lineas:

Cambien en mi codigo la sentencia:

os.system(ls_comando)

por

p = Popen(ls_comando , shell=True)
sts = os.waitpid(p.pid, 0)[1]

Realmente veo que funciona mucho mas rapido, ya no se abre esa pantalla
negra que invoca a un shell de DOS, sino que hace parte del proceso
inmediatamente.
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 ?

Mil gracias por sus sugerencias

El 1 de diciembre de 2009 19:50, german rivas <germanpython en gmail.com>escribió:

> Se me olvidó el link jeje
>
> http://docs.python.org/library/subprocess.html
>
> El 2 de diciembre de 2009 01:49, german rivas <germanpython en gmail.com
> >escribió:
>
> > Hola amigo Carlos!
> >
> > No estoy muy ducho en este tema pero algo si te puedo decir. Recuerdo que
> > la última vez que hice algo parecido lo hice mediante el módulo commands
> y
> > me fué muy bien pero si no recuerdo mal este solo está disponible en
> > sistemas Unix. Indagando un poco he visto que existe un nuevo módulo
> llamado
> > subprocess que pretende sustituir al propio commands, a os.system y a
> otra
> > opción que tienes (nunca la he usado) que es os.popen, entre otras...
> >
> > Espero te sirva de ayuda
> >
> > El 2 de diciembre de 2009 00:27, Carlos Herrera Polo <
> > carlos.herrerapolo en gmail.com> escribió:
> >
> > Estimados :
> >>
> >> Tengo una duda existencial con respecto a la funcion os.system
> >>
> >> Hace tiempo elabore un programa pequeño que permite convertir archivos
> en
> >> PDF por medio de una cuenta de correo, para esto utilizo PDFCreator y
> una
> >> libreria que viene con el, el punto esta en que el programa funciona
> >> bastante bien, pero para ejecutarlo uso os.system e invoco el programa
> >> enviandole el argumento del archivo a convertir, el problema esta en que
> >> cuando el programa llega a ese punto se "abre" una consola DOS en la
> >> maquina
> >> que corre el programa y demora como unos 30 segundos aproximadamente en
> >> que
> >> aparece esta pantalla negra y ejecuta el programa que deberia, es decir
> >> que
> >> tiene un desfase entre que inicia (me parece) el prompt y luego ejecuta
> el
> >> programa, estoy trabajando sobre Windows 2003 Server.
> >> Me ayudaria mucho en saber si estoy haciendo algo mal, si esto es normal
> o
> >> no, ya que considero que este desfase es demasiado, el programa corre
> >> bastante rapido, la demora esta en "abrir" la consola DOS,
> >> He probado lo mismo en una estacion con Windows XP y demora
> >> igual..........
> >> adjunto el codigo que utilizo, por favor cualquier sugerencia se
> agradece.
> >>
> >> def fn_to_pdf(self,as_origen):
> >>        # Convierte un archivo a pdf
> >>        #  UTILIZA PFDCreator
> >>
> >>        ls_comando='C:\PythonScripts\convert2pdf.py'
> >>        ls_comando = os.path.abspath(ls_comando)
> >>
> >>        ls_origen = as_origen
> >>
> >>        ls_comando = ls_comando + ' "'+ ls_origen + '"'
> >>
> >>        os.system(ls_comando)
> >> _______________________________________________
> >> 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
>
_______________________________________________
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