esperar a que termine subprocess

tny a.porrua en gmail.com
Jue Nov 29 13:54:40 CET 2007


El jue, 29-11-2007 a las 13:24 +0100, damufo escribió:
> Hola:
> Hasta ahora usaba o.system y tengo entendido que eso no es lo mas 
> correcto en mi caso:
> Por lo que e cambiado
> os.system ('cabarc.exe x "impres.cab"')
> 
> por:
> subprocess.Popen('cabarc.exe x "impres.cab"', shell=True)
> 
> el caso es que inmediatamente despues trato de leer el fichero que está 
> dentro:
> 
> f=open("fichero.txt",'r')
> 
> con os.system no tenía problemas pero con el subproces me da la 
> impresión de que trata de leer antes de que sea extraido el fichero por 
> lo que reporta error de que el fichero no existe.
> si pongo un mensaje antes de leer el fichero:
> 
> dd = wx.MessageDialog(self, "pausa ", "Titulo pausa", 
> wx.ICON_INFORMATION | wx.OK)
> dd.ShowModal()
> 
> En este caso si funciona bien porque me da la impresión de que así le 
> doy tiempo a hacer la tarea.
> 
> En definitiva, mis dos cuestiones.
> 
> Como puedo controlar que no lea el fichero que va a extraer mientras no 
> termina se dextraer?

Nunca he usado Popen, pero según la documentación deberías hacer así.

pipe=subprocess.Popen('cabarc.exe x "impres.cab"', shell=True)
pipe.wait()
f=open("fichero.txt",'r')

http://docs.python.org/lib/node533.html




> Y con relación a esto, existe en algún modulo en python con un extractor 
> para fichero .cab?
> Muchas gracias!
> 
> 
> 
> _______________________________________________
> Lista de correo Python-es 
> http://listas.aditel.org/listinfo/python-es
> FAQ: http://listas.aditel.org/faqpyes

------------ próxima parte ------------
_______________________________________________
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