1
私の理解は、subprocess.popenは非同期呼び出しであり、呼び出しに.wait()を追加すると同期がとれることです。最初の呼び出しが完了した後、2番目のpopen呼び出しが実行されますか?pythonのサブプロセスpopen非同期の理解
proc1 = subprocess.Popen(first_command, stdout=subprocess.PIPE, shell=True)
proc2 = subprocess.Popen(second_command, stdin=proc1.stdout, stdout=self.fw, shell=True)
私はそれが待機を(使用する必要があります時期を決定しようとしている)と、例えば、上記の例でpopenのステートメントを使用する場合には、エラーが発生する理由:
proc1 = subprocess.Popen(first_command, stdout=subprocess.PIPE, shell=True).wait() # throws exception
proc2 = subprocess.Popen(second_command, stdin=proc1.stdout, stdout=self.fw, shell=True).wait() # seems ok