optparse — 커맨드라인 옵션 파서

optparse — 커맨드라인 옵션 파서

optparse 는 최소한의 기능을 가진 getopt 모듈보다 더 편리하고 유연하며 강력한 커맨드라인 옵션 파싱 라이브러리예요. optparse 는 더 선언적인 스타일의 커맨드라인 파싱을 사용해요. OptionParser 인스턴스를 만들고, 여기에 옵션을 채운 다음 커맨드라인을 파싱해요.

출처: Python documentation

본문

소개 (Introduction)

optparse 로 기본 파서를 만들려면 다음과 같이 해요.

from optparse import OptionParser
...
parser = OptionParser()

그리고 옵션을 정의하기 시작할 수 있어요. 기본 문법은 다음과 같아요.

parser.add_option(opt_str, ...,
                  attr = value, ...)

도움말 생성 (Generating help)

optparse 는 usage 문자열에서 %prog 를 현재 프로그램 이름, 즉 os.path.basename(sys.argv[0]) 로 확장해요. 확장된 문자열은 상세 옵션 도움말 앞에 출력돼요. usage 문자열을 지정하지 않으면 무난하지만 분별력 있는 기본값을 사용해요.

참조 안내 (Reference Guide)

파서 만들기 (Creating the parser)

  • class optparse.OptionParser(...)OptionParser 생성자는 필수 인자가 없지만 여러 선택적 키워드 인자를 가져요. 항상 키워드 인자로 넘기길 권장해요(인자 선언 순서에 의존하지 말 것).
    • usage (기본값: "%prog [options]") — 프로그램이 잘못 실행되거나 도움말 옵션으로 실행될 때 출력할 usage 요약이에요. optparse 가 usage 문자열을 출력할 때 %progos.path.basename(sys.argv[0]) 로 확장해요(해당 키워드 인자를 넘겼다면 prog 로). usage 메시지를 없애려면 빈 문자열을 넘기면 돼요.
    • add_help_option — 참이면 optparse 가 도움말 옵션(옵션 문자열 -h, --help)을 파서에 추가해요.
    • progusageversion 에서 %prog 를 확장할 때 os.path.basename(sys.argv[0]) 대신 사용할 문자열이에요.
    • epilog (기본값: None) — 옵션 도움말 뒤에 출력할 도움말 텍스트 단락이에요.

옵션 정의 (Defining options)

Option 인스턴스는 동의어인 커맨드라인 옵션 문자열의 집합(예: -f--file)을 나타내요. 짧거나 긴 옵션 문자열을 원하는 만큼 지정할 수 있지만, 전체적으로 하나 이상의 옵션 문자열은 지정해야 해요.

옵션 속성 (Option attributes)

  • Option.type (기본값: "string") — 이 옵션이 기대하는 인자 타입(예: "string" 또는 "int")이에요. 사용 가능한 옵션 타입은 문서에 설명돼 있어요.

표준 옵션 동작 (Standard option actions)

  • "help" — 도움말 메시지를 출력한 뒤 optparsesys.exit(0) 로 프로세스를 종료해요.
  • "version"OptionParser 에 제공된 버전 번호를 stdout 으로 출력하고 종료해요. 버전 번호는 실제로 OptionParserprint_version() 메서드가 포맷하고 출력해요.

표준 옵션 타입 (Standard option types)

  • "int" 타입: 숫자가 0x 로 시작하면 16진수, 0 으로 시작하면 8진수, 0b 로 시작하면 2진수, 그 외에는 10진수로 파싱돼요.

optparse 확장 (Extending optparse)

새로운 타입을 추가하는 예시로, 파이썬 스타일 복소수를 커맨드라인에서 파싱하는 "complex" 옵션 타입을 추가하는 방법이 문서에 소개돼요.

더 알아보기 (Learn more)