Skip to content

파이썬 라이브러리 Getopt #

Find similar titles

6회 업데이트 됨.

Edit
  • 최초 작성자
    둥굴레씨
  • 최근 업데이트
    syp

Structured data

Category
Programming

개요 #

getopt 는 파이썬 기본 라이브러리 중 하나로 명령행 옵션을 처리해주는 모듈이다. 명령행에서 입력된 옵션들을 정의하고 설정한 변수 값으로 할당해준다. 옵션 인수는 유닉스 getopt() 함수와 동일하게 – 혹은 -- 로 시작한다.

사용법 #

getopt 함수 인수 #

getopt 함수는 세 가지 인수를 등록할 수 있다. 첫 번째와 두 번째 인수는 필수로 입력 항목이다.
1. 파이썬 스크립트 등을 콘솔에서 실행할 때 명령행에서 입력된 옵션 명에 대한 문자열 리스트가 필요하다. 이는 sys.argv[1:] 등의 명령어를 활용하여 입력할 수 있다.
2. 처리할 옵션 문자들이다. 단독 옵션과 추가 인수를 필요로 하는 옵션 등을 설정할 수 있다. (추가 인수를 필요로 하는 경우는 콜론(:)을 구분자로 입력한다. 예를 들면 a: 는 –a <옵션 인수> 형태로 입력할 수 있다.)
3. 롱 옵션으로 긴 문자열로 구성된 옵션 명을 설정할 수 있다. 옵션 명 문자열들을 리스트 형식의 데이터로 입력해야 한다. 또한, 옵션 명 문자열 뒤에 등호(=) 붙여준다. 롱 옵션을 명령행에서 사용할 때에는 --<옵션 명> 형태로 사용한다. (예, “infile-name=”로 설정한 경우 명령행에서 –infile-name으로 지정하여 사용한다.)

처리방법 #

Getopt 사용 시 옵션 명이 있는 옵션들과 없는 옵션들에 대한 결과값을 반환한다. 옵션 명이 있는 인수들은 각 옵션과 옵션값들은 튜플 형태로 명령행 전체의 인수들은 리스트에 저장된다 (아래 예시코드의 opts 변수 참조). for나 while 등의 반복문 등을 활용하여 필요한 인수의 값을 취한다. 아래 예시 코드를 참고한다.

예시코드 #

import sys
import getopt
try :
    opts, args = getopt.getopt(sys.argv[1:], "hi:f:u:",
            ["help=", "id=", "file_path=", "user="])
except getopt.GetoptError, err:
    print str(err)
    sys.exit(1)

entry_id = None
file_path = None
user = None

for o, a in opts:
    if o in ("-h", "--help"):
        print "Help message"
        sys.exit()
    elif o in ("-i", "--id"):
        entry_id = a
    elif o in ("-f", "--file_path"):
        file_path = a
    elif o in ("-u", "--user"):
        user = a
    else :
        assert False, "unhandled option"

Suggested Pages #

0.0.1_20230725_7_v68