11

私のプログラムにはたくさんのprint関数 ( ) があります。python 2.7数行を追加して、すべての出力をリダイレクトできる方法はありますstderrか? 私が欲しいのはPythonコードですが、Linuxパイプラインではありません。

たとえば、私のプログラムは次のようになります。

print 'hello world'

次のようなコードを追加したいと思います。

redirect_output_to_stderr()
print 'hello world'

その後、すべての出力を にリダイレクトできますstderr

目標を達成できることはわかってprint >> sys.stderr, 'hello world'いますが、既存のコードの変更を防ぐ方法はありますか?

4

3 に答える 3

20

Python 2.7 では、次のことができます。

import sys

print >> sys.stderr, "To stderr."

または、3.x から動作をインポートできます。

from __future__ import print_function
import sys

print('To stderr.', file=sys.stderr)
于 2013-04-07T08:38:54.660 に答える
1

の再定義はprintPython 3+ の機能です。ただし、 に変更できsys.stdoutますstd.stderr

参照:別の質問

于 2013-04-07T08:32:36.990 に答える