본문 바로가기
컴퓨터언어정리/Python

[Python] argparse : 명령행 옵션, 인자와 부속 명령을 위한 파서

by Wanda 2022. 5. 23.

# ArgumentParser이란?

: 프로그램을 실행시에 커맨드 라인에 인수를 받아 처리를 간단히 할 수 있도록 하는 표준 라이브러리이다.

 

* 사용법

 

1. argparse를 import한다.

2. parser를 만든다.

3. 인수를 설정한다.

4. 분석한다.

 

import argparse

parser = argparse.ArgumentParser(description = '이 프로그램의 설명')

parser.add_argument('arg1', help = 'asdfas')

parser.add_argument('arg2', help = 'asdfasdf')

parser.add_argument('--arg3') # 옵션 인수(지정하지 않아도 괜찮은 인수를 추가)

parser.add_argument('-a','--arg4') #자주 사용하는 인수라면 약칭이 있으면 사용할 때 편리하다.

 

args = parser.parse_args() # 인수를 분석

 

* 인수를 어떻게 지정했는지 깜빡했을 때는 실행 시 -h 혹은 --help를 지정하면 정보를 확인할 수 있다

 

* -(하이픈 수가 한개)인 경우는 한 문자가 오는경우, 2개 이상인 경우는 --(하이픈 2개)를 붙인다.

 

* 자주 사용하는 인수라면 정식 명칭과 약칭을 함께 붙여서 미리 정의해두면 편하다. 단, 프로그램 내에서는 정식 명칭만 사용할 수 있다. 

 

# 데이터 형을 지정하고 싶을 때

 

커맨드 라인 인수로 지정된 값은 기본적으로 데이터형은 문자열이다. 따라서 정수형이나 실수형으로 지정하고 싶은 경우 다음과 같이 작성할 수 있다.

 

parser.add_argument('--number', type=int)

parser.add_argument('--alpha', type=float, default = 0.01)

 

 

#플래그로써 사용하고 싶을 때

add_argument에 action을 지정하면 플래그로 사용할 수 있다.

 

parser.add_argument('--flag', action = 'store_true')

args = parser.parse_args()

 

- 실행시에 --flag가 지정되어 있는 경우 True, 그렇지 않으면 False가 된다. 인수로써 구체적인 값을 지정하는 것이 아닌, 그 인수를 지정하는 or하지 않는 것에 의미를 갖게 하고 싶을 경우에 사용할 수 있다.