0

またはとは異なるファイル記述子にデータを出力するシェルコマンドラインがあります。stdoutstderr

私が試したとき:

p1 = subprocess.Popen("some cmdline", shell=True, stderr=subprocess.STDOUT, stdout=subprocess.PIPE)
a,b = p1.communicate()

a と b の両方が空で、上記の 2 つの python コマンドを実行しているときにコンソールに送信される o/p (キャッチしようとしていたログ) がいくつかあることがわかりました。

o/p をシェル コマンドラインから stdout または stderr にリダイレクトする必要があるかもしれないことは理解していますが、シェル コマンドラインによってログが送信される fd が毎回変更されるように見えます。

私の質問は、上記のシェル コマンドラインから o/p を a および / または b にキ​​ャプチャする方法です。

4

0 に答える 0