2009-05-13 2 views

답변

11

시도 warnings.showwarning

#!/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") 

가 표준 출력에 모든 경고를 리디렉션합니다 재 할당. 이 테스트되지 않은 코드 그리고 현재 저를 회피한다 깨끗한 방법이 같은 인터페이스가 보이지만

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 

해방 \의 warnings.py 내부의 모습 넣어 도움이 될 것입니다 충분하지 않다면 올바른 길로 가십시오.

0
import sys 
import StringIO 

sys.stdout = StringIO.StringIO() 
+1

그냥 참고 -이 io.StringIO 정의 fileno()를 가지고 있지만 구현되지 동안 StringIO.StringIO이 같은 fileno 등의 방법() 정의가없는 io.StringIO 에서 다른 구현입니다. – eacousineau

관련 문제