커맨드라인 인자 읽는 가장 단순한 방법 — sys.argv 가 list. sys.argv[0] 이 스크립트 이름. sys.argv[1:] 가 인자. positional 인자 한두 개 받는 작은 스크립트엔 OK. 플래그, 옵션, 도움말 텍스트 가진 거엔 argparse.
argparse — stdlib 의 CLI 파서
argparse 가 파싱, 검증, 타입 변환, 디폴트 값, 도움말 텍스트 생성 처리. parser = argparse.ArgumentParser(); parser.add_argument("--input"); args = parser.parse_args(). 결과는 정의된 각 인자에 속성 가진 namespace 객체. 자동 생성 --help 출력이 argparse 의 가장 큰 승리 중 하나.
Positional vs optional
add_argument("input") 가 positional 인자 선언. add_argument("--input") 가 optional 플래그 선언 (앞 -- 주의). add_argument("-i", "--input") 가 단축 + 긴 형태 둘 다. positional 이 디폴트로 필수, optional 은 required=True 아니면 X.
타입 변환과 choice
인자에 type=int 가 argparse 한테 문자열을 int 로 변환 + 검증. choices=["a", "b"] 가 고정 set 으로 제한. action="store_true" 가 --verbose 를 플래그로 (값 X, 있냐 없냐). 대부분 CLI 패턴 커버.
원칙: argparse 가 Python 빌트인 + CLI 필요의 90% 처리. 많은 서브커맨드, 더 풍부한 기능, 데코레이터 스타일 선호일 때 click 또는 typer 손에 닿아. argparse vs typer 가 능력보다 스타일 선호.
argparse 로 작은 CLI 도구 — python tool.py [--verbose] [--count N] input output. 필수 positional 이 input/output path. --count 가 디폴트 1 인 옵션 int. --verbose 가 플래그. 스크립트가 그냥 파싱된 인자 출력. 도움말 텍스트 추가. --help 로 실행 + 자동 도움말 생성 확인. 다양한 조합 테스트.
Progress
Progress is local-only — sign in to sync across devices.