2012-01-21 93 views
9

すでにタイトルに質問があります - os.system()呼び出しで起動されたプロセスが完了するまで、Pythonスクリプトをどのように待機させることができますか?たとえば、私のPCを作ることがPython:外部起動プロセスの終了を待つ

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

これは同時に要求された処理をn回起動するようなコードは、)どんなアドバイスを

おかげで少し汗をかきます。代わりに

答えて

10

os.system()は、そのプロセスが復帰する前に完了するための待機を行います。

待機していない場合は、起動しているプロセスがバックグラウンドで実行されている可能性があります。その場合、Dor与えられたsubprocess.Popen + waitの例は役に立ちません。

サイドノート:

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

明示的に代わりにコマンドと引数を渡す以外)os.system(より実際に違いはありません:あなたが望むすべては、使用subprocess.callを待つ+ subprocess.Popenされた場合それを1つの文字列として渡します。

12

使用subprocess:もっとここ

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

読む:http://docs.python.org/library/subprocess.html

+0

+1答えはありませんが、速度は – joaquin

+0

@joaquin thanks –

関連する問題