본문 바로가기
카테고리 없음

[Python] Warnings.filterwarnings로 경고문 안보이게 하기 / 경고문 설정하기

by 빕비빅 2023. 9. 14.

코드 작성하다 보면 별건 아니지만 빨간 경고창이 나타나서 우리의 가슴을 두근거리게 할 때가 있다.

에러도 아니면서 왜 빨간색으로 나를 설레게 한담 참나

경고창은 대게 크-게 눈여겨 볼만한 것은 잘 없고(내가 무지할 수도 내가 무지렁이일 수도), 내가 자주 보는 경고문은 보통 "너가 쓰는 이 패키지 이 클래스 우리 다음 버전부터는 버리고 갈꺼다? 그때 코드 오류 나도 우린 모른다?" 뭐 대충 이런 느낌의 경고문이 대부분이다(정식 명칭은 DeprecationWarning).

그렇다면 이 눈에 거슬리는 빨간 창을 안보고 싶을 땐 어떻게 할까?

고맙게도 파이썬에는 경고문을 제어할 수 있는 Warnings 모듈이 있다. 

import warnings
warnings.filterwarnings(action='ignore')

이렇게 딱 두 줄만 쓰면, 경고문들이 아예 출력되지 않게끔 설정할 수 있다. 

ignore말고도 다양하게 설정을 바꿀 수 있는데, 아래 표를 참고하면 된다.
warnings.filterwarnings(action=value) <- 요 value자리에 어떤 값들을 넣어서 설정할 수 있는지 설명해주는 표다.

Value Disposition
"default" print the first occurrence of matching warnings for each location (module + line number) where the warning is issued
각 위치별(모듈마다, 라인 순서
"error" 경고문을 예외처리해줌
"ignore" 경고문을 절대 안보여줌(다 무시)
"always" 항상 경고문 출력 해줌
"module" 각 모듈마다 젤 첨에 실행해서 발생한 경고문은 보여줌. 그 이후로는 안알랴줌(라인 순서에 상관없이)
"once" 위치에 상관없이 젤 첨 발생한 경고문만 보여주고 그 뒤로는 안알랴줌(어떤 모듈이든, 어느 위치든 관계 없이)

공식 문서에 있는 표를 얼렁뚱땅 번역해보았다.

 


참고 문헌 : https://docs.python.org/3/library/warnings.html

 

warnings — Warning control

Source code: Lib/warnings.py Warning messages are typically issued in situations where it is useful to alert the user of some condition in a program, where that condition (normally) doesn’t warrant...

docs.python.org

 

댓글