2011-07-22 15 views
0

Interactive Interpreterでos.system()を呼び出すと、その出力内容をコンソールで確認できます。 私の場合、sys.stderrとsys.stdoutを別のクラスのインスタンスに変更する必要があり、os.system関数はexec文の中で呼び出されます。問題は、出力の内容がわかりません。 stderrにもstdoutにも書き込まれません。 私の質問:os.system()の出力はどこに行きますか?os.system()のコンソール出力?

おかげで、 ニクラス

答えて

3

それが標準出力や標準エラー出力に出力するかどうかに応じて、ファイルディスクリプタ1または2のいずれかになります。出力をより細かく制御する必要がある場合は、subprocessを使用してください。

+0

stdoutまたはstderrには行かないので、出力ウィンドウに表示されません。しかし、サブプロセスモジュールはこれに非常に便利です!ありがとう! –

+0

しかし、私のカスタムファイルライクなクラスは、fileno()メソッドをサポートしていません。その周りに道がありますか? –

+0

パイプを 'os.pipe()'で作成し、 'select'を使ってパイプから読み込むデータがあるかどうかを確認します。 –

関連する問題