-
Python argparse.ArgumentParser()프로그래밍/python 2023. 4. 24. 16:06728x90
python 실행 시 외부 파라미터를 받을 때 사용되는 library 이다.
실제로 일어 날지는 모르겠지만...
허용하지 않는 parameter 가 입력 되었을 경우
parser = argparse.ArgumentParser() parser.add_argument("--file_path", "-f", help="sql file path") # -f : sql 파일 및 경로를 파라미터로 받음 parser.add_argument("--parameters", "-p", help="sql parameters") # -p : sql 파일 실행에 필요한 변수값을 파라미터로 받음 args = parser.parse_args() # 파라미터 객체
위와 같이 일반적으로 코드를 돌릴 경우
-f, -p 파라미터 이외에 값이 들어 올 경우 에러가 난다.
→ Exception으로 빠지지도 않고 프로그램이 종료가 일어난다.
→ python3.9 부터는
argparse - Parser for command-line options, arguments and sub-commands - Python 3.10.5 documentation
custom error로 처리 할 수 있는데… 지금 사용중인 버젼이 3.8이라…
해결책
parser = argparse.ArgumentParser() parser.add_argument("--file_path", "-f", help="sql file path") # -f : sql 파일 및 경로를 파라미터로 받음 parser.add_argument("--parameters", "-p", help="sql parameters") # -p : sql 파일 실행에 필요한 변수값을 파라미터로 받음 args, unknown = parser.parse_known_args() # 파라미터 객체
위처럼 unknown으로 받으면 된다
그러면 프로세스 종료 없이 오류를 확인 할 수 있게 된다.
보통 일반적으로 프로그램을 호출하는 데 정의되어 있는 파라미터를 사용하도록 문서도 제공하고 사용방법을 제공했는데... 꼭 문서도 안 읽어보고 마음데로 예측하고 쓰는 사람들이 있다.
제발 좀 문서 좀 잘 보고 사용 합시다
일어나지 않을 것 이라고 믿은 나의 잘못이 크며 실제로 오류를 겪고 사람을 교육하는 것 보다 오류 방지 코드를 만드는 것이 효율적이라는 것을 또 한번 상기하게 되었다.
728x90'프로그래밍 > python' 카테고리의 다른 글
python coding style (0) 2019.03.06 selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally (0) 2019.02.25 pyinstaller를 이용한 tensorflow-gpu exe 파일 만들기 (5) 2018.11.09 Python DataFrame To excel with hyperlink (0) 2018.09.27 debian python3.6 package 설치 (0) 2018.09.05