2012-01-21 12 views
9

Zaten başlıktaki soru - python komut dosyasını os.system() çağrısı ile başlatılan bir işlem tamamlanana kadar nasıl bekleyebiliriz? Örneğin benim pc yapabilirPython: harici başlatılan işlemin tamamlanması bekleniyor

for i in range(0, n): 
     os.system('someprog.exe %d' % i) 

Bu aynı anda istenen süreç n defa başlattı gibi bir kod,) herhangi bir tavsiye için

Teşekkür biraz terlemeye. yerine

cevap

10

os.system() onun süreç dönmeden önce tamamlamak için bekleme yapar.

Beklemediğini görüyorsanız, başlatmakta olduğunuz işlem altprocess.Popen + wait örneğinin verdiği durumda arka planda çalışacak şekilde büyük olasılıkla ayrılır.

Yan not:

import subprocess 
subprocess.call(('someprog.exe', str(i))) 

açıkça yerine komutunu ve argümanları geçen hariç) os.system (daha çok farklı değil: tüm istediğiniz kullanım subprocess.call bekleyin + subprocess.Popen edilirse Tek bir dize olarak teslim etme.

12

Kullanım subprocess: Daha fazla burada

import subprocess 
for i in xrange(n): 
    p = subprocess.Popen(('someprog.exe', str(i)) 
    p.wait() 

Okuma: http://docs.python.org/library/subprocess.html

+0

+1 yanıt için değil ama hız için – joaquin

+0

@joaquin teşekkürler –

İlgili konular