次の機能を実現する方法:
inputPythonはシェルコマンドを実行します。シェルコマンドはユーザーが何かをするのを待ちます- ユーザーがを入力した後
input、プログラムはいくつかの応答を返しますoutput - Pythonは
output
あなたはおそらく欲しいですsubprocess.Popen。プロセスと通信するには、このcommunicateメソッドを使用します。
例えば
process=subprocess.Popen(['command','--option','foo'],
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
inputdata="This is the string I will send to the process"
stdoutdata,stderrdata=process.communicate(input=inputdata)
同期動作の場合、subprocess.run()から始まる関数を使用できますPython v3.5。
subprocess.popenとsubprocess.runの受け入れられた答えの違いは何ですか?で述べたように:
主な違いは、コマンドを
subprocess.run実行してコマンドが終了するのを待つsubprocess.Popen一方で、プロセスが終了するまで作業を続行し、繰り返しsubprocess.communicate自分自身を呼び出してプロセスにデータを渡したり受信したりできることです。