Tùy thuộc vào cách bạn muốn làm việc với tập lệnh của mình, bạn có hai tùy chọn. Nếu bạn muốn các lệnh chặn và không làm bất cứ điều gì trong khi nó đang thực hiện, bạn chỉ có thể sử dụng subprocess.call
.
#start and block until done
subprocess.call([data["om_points"], ">", diz['d']+"/points.xml"])
Nếu bạn muốn làm những việc trong khi nó đang thực hiện hoặc những thứ thức ăn vào stdin
, bạn có thể sử dụng communicate
sau popen
gọi.
#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
Như đã nêu trong tài liệu, wait
có thể bế tắc, vì vậy hãy liên lạc.
Kiểm tra tài liệu trên [subprocess.call] (http://docs.python.org/library/subprocess.html#convenience-functions) – thornomad