В зависимости от того, как вы хотите работать со своим сценарием, у вас есть два варианта. Если вы хотите, чтобы команды блокировались и ничего не делали во время выполнения, вы можете просто использовать subprocess.call
.
#start and block until done
subprocess.call([data["om_points"], ">", diz['d']+"/points.xml"])
Если вы хотите что-то сделать во время его выполнения или передать в stdin
, вы можете использовать communicate
после вызова 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
Как указано в документации, wait
может зайти в тупик, поэтому рекомендуется общаться.