2016-04-27 7 views

答えて

3

subprocess.callは、呼び出されるたびにプロセスを作成し、コマンドが完了するのを待ちます。したがって、コマンドが完了するのを待つという性質のため、実際の並列処理はありません。

subprocess.Popenも、呼び出されるたびにプロセスを作成しますが、コマンドが完了するまで待機しません。 communicateを使用すると、コマンドが完了するまで待つか、killに電話をかけることができます。

これをまとめます。 subprocess.Popenを使用すると、作成したプロセスをより詳細に管理できます。私はちょうど1であることが好ましく、コマンド、os.systemとsubprocess.callを実行したい場合はpython documentation

+0

に記載

? –

+0

python 3.5には、同じ種類のことをする新しい**実行**機能があります。 –

+0

コマンドを実行してそれが完了するのを待っていれば 'subprocess.call'は良いはずです;) – salomonderossi

1

はい、subprocess.call()またはその親族のいずれか(Popen()など)に電話するたびに、新しいプロセスが生成されます。通常はサブプロセスを明示的に終了する必要はありません。終了するまで待つだけです。

関連する問題