これが簡単なpythonの質問であることを願っています。
Pythonインタープリターで次のことを試すと:
>>> import process
>>> def test(cmd):
... p = subprocess.Popen(cmd)
...
>>> test(['ls', '-l'])
が実行さls -l
れますが、新しい >>> プロンプトを表示するには「return」キーを押す必要があります。
ただし、次のことを試すと:
>>> import process
>>> def test(cmd):
... p = subprocess.Popen(cmd)
... p.wait()
...
>>> test(['ls', '-l'])
次に、ls -l
すぐに >>> プロンプトが表示されて実行されます。
もう 1 つのバリエーション:
>>> import process
>>> def test(cmd):
... p = subprocess.Popen(cmd, stdout=subprocess.PIPE)
...
>>> test(['ls', '-l'])
これにより、すぐに新しいプロンプトが表示されます。
最後の例は、私が望むものに最も近いものです。私の目標は、子プロセスを起動し、それが終了するのを待ってから、参照することで親プロセスでその標準出力を使用し、標準エラー出力をp.stdout
他の方法で出力することです。
現在、私の実際のアプリケーションでは、最後のバージョン
は .p = subprocess.Popen(cmd, stdout=subprocess.PIPE)
の有無にかかわらずp.wait()
.
ありがとう、
チャーリー