728x90
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으로 받으면 된다
그러면 프로세스 종료 없이 오류를 확인 할 수 있게 된다.
보통 일반적으로 프로그램을 호출하는 데 정의되어 있는 파라미터를 사용하도록 문서도 제공하고 사용방법을 제공했는데... 꼭 문서도 안 읽어보고 마음데로 예측하고 쓰는 사람들이 있다.
제발 좀 문서 좀 잘 보고 사용 합시다
일어나지 않을 것 이라고 믿은 나의 잘못이 크며 실제로 오류를 겪고 사람을 교육하는 것 보다 오류 방지 코드를 만드는 것이 효율적이라는 것을 또 한번 상기하게 되었다.
'프로그래밍 > python' 카테고리의 다른 글
datahub 버젼 업 후 old version oracle 데이터 미수집 문제 (3) | 2024.11.20 |
---|---|
pyenv를 이용한 여러 버전의 파이선 하나의 컴퓨터에서 이용하 (1) | 2024.11.08 |
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 |