8

次の機能を実現する方法:

  1. inputPythonはシェルコマンドを実行します。シェルコマンドはユーザーが何かをするのを待ちます
  2. ユーザーがを入力した後input、プログラムはいくつかの応答を返しますoutput
  3. Pythonはoutput
4

2 に答える 2

9

あなたはおそらく欲しいです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)
于 2012-05-20T12:03:48.253 に答える
0

同期動作の場合、subprocess.run()から始まる関数を使用できますPython v3.5

subprocess.popenとsubprocess.runの受け入れられた答えの違いは何ですか?で述べたように:

主な違いは、コマンドをsubprocess.run実行してコマンドが終了するのを待つsubprocess.Popen一方で、プロセスが終了するまで作業を続行し、繰り返しsubprocess.communicate自分自身を呼び出してプロセスにデータを渡したり受信したりできることです。

于 2022-02-04T10:48:37.093 に答える