StreamIO のようなファイルのようなオブジェクトがあり、Python の警告モジュールにすべての警告メッセージを書き込むとします。それ、どうやったら出来るの?
質問する
6079 次
3 に答える
19
warnings.showwarning ieを再割り当てしてみてください
#!/sw/bin/python2.5
import warnings, sys
def customwarn(message, category, filename, lineno, file=None, line=None):
sys.stdout.write(warnings.formatwarning(message, category, filename, lineno))
warnings.showwarning = customwarn
warnings.warn("test warning")
すべての警告を標準出力にリダイレクトします。
于 2009-05-13T16:20:28.673 に答える
0
import sys
import StringIO
sys.stdout = StringIO.StringIO()
于 2009-05-13T17:40:52.520 に答える
0
これはテストされていないコードであり、インターフェースは現在私を逃れるよりクリーンな方法があるように見えますが、このようなものはうまくいくと思います:
import warnings
# defaults to the 'myStringIO' file
def my_warning_wrapper(message, category, filename, lineno, file=myStringIO, line=None):
warnings.show_warning(message, category, filename, lineno, file, line)
warnings._show_warning = my_warning_wrapper
Lib\warnings.py の中を見るだけで十分でない場合は、正しい軌道に乗ることができます。
于 2009-05-13T16:57:28.970 に答える