example español ejemplos check_output python wait popen

ejemplos - subprocess python español



Comando Python popen Espere hasta que el comando esté terminado (4)

Deje que el comando que está tratando de pasar sea

os.system(''x'')

entonces lo encubierto a una declaración

t = os.system(''x'')

ahora el pitón estará esperando el resultado de la línea de comando para poder asignarlo a la variable t .

Tengo un script donde lo inicio con popen un comando de shell. El problema es que el script no espera hasta que el comando popen finalice y continúa de inmediato.

om_points = os.popen(command, "w") .....

¿Cómo puedo decirle a mi script de Python que espere hasta que el comando de shell haya terminado?


Dependiendo de cómo quiera trabajar su script, tiene dos opciones. Si desea que los comandos se bloqueen y no haga nada mientras se está ejecutando, puede usar subprocess.call .

#start and block until done subprocess.call([data["om_points"], ">", diz[''d'']+"/points.xml"])

Si desea hacer cosas mientras se está ejecutando o alimentar cosas en stdin , puede usar la communicate después de la llamada popen .

#start and process things, then wait p = subprocess.Popen([data["om_points"], ">", diz[''d'']+"/points.xml"]) print "Happens while running" p.communicate() #now wait plus that you can send commands to process

Como se indica en la documentación, la wait puede bloquearse, por lo que es aconsejable comunicarse.


Lo que estás buscando es el método de wait .


Puedes usar un subprocess para lograr esto.

import subprocess #This command could have multiple commands separated by a new line /n some_command = "export PATH=$PATH://server.sample.mo/app/bin /n customupload abc.txt" p = subprocess.Popen(some_command, stdout=subprocess.PIPE, shell=True) (output, err) = p.communicate() #This makes the wait possible p_status = p.wait() #This will give you the output of the command being executed print "Command output: " + output