2016-09-12 4 views
0

私はプログラム(samtools)をパイプラインに組み込む作業を進めています。参考samtoolsは、SAMフォーマットのDNA配列アライメントを操作するためのプログラムです。入力を受け取り、stdinとstdoutを介して出力ファイルを生成するので、pythons subprocess.Popen()を使って簡単に制御できます。Popenコールでstdin、stdout、stderr以外のデータストリームを捕捉することは可能ですか?

実行時には、stdoutを使用せずにショートメッセージをコンソールに出力します。明らかにこれらをキャッチすることは可能でしょうか?os生成ハンドラリストを取得することによって可能性がありますか?

私は、stdoutから来ていない場合は、プログラムのコンソール出力をキャッチすることは可能ですか?ありがとうございました。

+0

あなたはどのOSを使用していますか? – Glostas

+0

ああ、申し訳ありません。それはLinux Fedoraです。 –

+0

stdoutまたはstderrを経由しないと、メッセージはどのようにコンソールに送られますか? –

答えて

2

stdoutとstderr以外のコンソール出力はありません(samtoolsが端末に直接ttyデバイス経由で書き込みを行わないと仮定します)。したがって、出力がサブプロセスstdoutでキャプチャされない場合は、stderrに書き込まれていなければなりません。でPopen()を使用してキャプチャし、結果のプロセスオブジェクトの属性stderrを検査します。

+0

どうもありがとうございます。少しお詫び申し上げます。私はstderrorをチェックしていないと少し恥ずかしいと感じます。それは本当に私の問題の鍵でした。私は今、賢明です。 –

+0

恥じる必要はありません。どういたしまして :) –

関連する問題