파이썬 argparse 입력 검증: 필수 옵션, 허용 값, 처리 건수 제한하기
자동화 실행 인자는 argparse에서 필수 여부·허용 값·범위를 검사하고, 실제 반영은 별도 명시 옵션으로 분리하세요. 확인일: 2026-10-24. Python 3.14 표준 라이브러리 예제입니다. Windows Python 3.14.4에서 합성 입력으로 로컬 실행과 assert 검사를 통과했습니다. 왜 실행 인자를 먼저 검사해야 하나요? 스케줄러에서 같은 프로그램을 반복 실행할 때 옵션을 빠뜨리거나 대상을 오타로 입력하면, 잘못된 자료를 처리할 수 있습니다. 이 예제는 데이터 조회나 변경보다 앞에 두는 명령줄 입력 검증 계층입니다. source는 sales 또는 support, limit는 1~1000 정수로 제한합니다. 이 숫자는 서비스 한도가 아니라 합성 예제의 입력 계약입니다. 기본 동작을 어떻게 정하나요? --source는 반드시 입력해야 하고 --limit를 생략하면 100입니다. --apply는 존재할 때만 True가 되는 플래그로 기본 False입니다. allow_abbrev=False로 --sou 같은 긴 옵션의 축약을 허용하지 않습니다. 옵션을 정확히 적도록 하는 선택이며 모든 CLI의 보편적인 필수 설정은 아닙니다. 최소 예제와 실패 조건 아래 코드는 인자 분석기와 자체 테스트입니다. 실제 파일이나 API를 처리하는 함수는 없습니다. 따라서 --apply를 넣어도 이 코드 자체가 운영 자료를 변경하지 않습니다. 실제 프로그램에는 분석 결과를 확인한 뒤 미리보기와 반영 함수를 분기하는 호출부를 별도로 작성해야 합니다. import argparse from contextlib import redirect_stderr from io import StringIO def bounded_limit(text): try: value = int(text) except ValueError: raise argparse.ArgumentTypeError("정수가 필요합니다") from None ...