待機のドキュメント(http://docs.python.org/2/library/subprocess.html#subprocess.Popen.wait)には、次のように書かれています。
警告
これは、stdout=PIPEおよび/またはstderr=PIPEを使用するときにデッドロックし、子プロセスがパイプに十分な出力を生成して、OSパイプバッファーがより多くのデータを受け入れるのをブロックするようにします。これを回避するには、communicate()を使用します。
このことから、 ifが必要ない場合のすべての使用法をcommunicate
置き換えることができると思います。また、またはがPIPEでない場合でも、。に置き換えることができます。wait()
retcode
stdout
stdin
wait()
communicate()
そうですか?ありがとう!