argparse는 Python 표준 라이브러리입니다. CLI(커맨드라인 인터페이스)에서 인자를 파싱하는 모듈로, python main.py <경로> --no-summary --json 같은 명령어를 처리합니다.
import argparse
ap = argparse.ArgumentParser(description="프로그램 설명")
# 위치 인자 (필수)
ap.add_argument("path", help="문서 경로")
# 옵션 인자 (선택)
ap.add_argument("--no-summary", action="store_true", help="요약 생략")
ap.add_argument("--json", action="store_true", help="JSON 출력")
args = ap.parse_args()
print(args.path) # "파일.pdf"
print(args.no_summary) # True / False
print(args.json) # True / False
add_argument 주요 파라미터# action="store_true" — 플래그가 있으면 True, 없으면 False
ap.add_argument("--verbose", action="store_true")
# type= — 입력값을 자동 형변환
ap.add_argument("--count", type=int, default=3)
# choices= — 허용 값 제한
ap.add_argument("--format", choices=["txt", "json", "docx"])
# required= — 옵션 인자를 필수로 지정
ap.add_argument("--key", required=True)
# nargs= — 여러 값 받기
ap.add_argument("--files", nargs="+") # 1개 이상
# 위치 인자만
python main.py report.pdf
# 옵션 포함
python main.py report.pdf --no-summary
python main.py report.pdf --json
python main.py report.pdf --no-summary --json
# --help 자동 생성
python main.py --help
# usage: main.py [-h] [--no-summary] [--json] path
# doc-summary-agent 파이프라인
# positional arguments:
# path 문서 경로 (PDF / DOCX / HWP / DOC)
# options:
# --no-summary Step1~2만 실행
# --json 결과를 JSON으로 출력
sys.argv와의 비교# sys.argv — 날것의 문자열 리스트, 직접 파싱해야 함
import sys
path = sys.argv[1] # 인덱스로 직접 접근
flag = "--json" in sys.argv # 수동으로 확인
# argparse — 자동 파싱 + 유효성 검사 + --help 자동 생성
import argparse
ap = argparse.ArgumentParser()
ap.add_argument("path")
ap.add_argument("--json", action="store_true")
args = ap.parse_args() # 타입 검사, 필수값 누락 시 에러 자동 처리
| 항목 | 내용 |
|---|---|
| 위치 인자 | add_argument("name") — 순서 기반, 필수 |
| 옵션 인자 | add_argument("--name") — -- 접두사, 선택 |
| 플래그 | action="store_true" — 있으면 True |
| 자동 제공 | --help 메시지 자동 생성 |
sys.argv 대비 | 타입 검사·필수값 검증·help 자동화 |
한 줄 요약:
argparse는 CLI 인자를 선언적으로 정의하고 자동 파싱·검증·help 생성까지 처리해주는 표준 라이브러리로,sys.argv직접 파싱보다 안전하고 확장성이 높습니다.