파이썬(Python)/vs code

[python] argparse 모듈의 의미 및 사용법

sunning 2023. 2. 10. 11:02
728x90
반응형

argument란?

  • parameter (매개변수) : 함수를 구현하는 쪽과 함수를 사용하는 쪽을 매개하는 변수
  • argument (전달값, 전달인자, 인자, 인수 등) : 함수를 사용하는 사람이 매개변수에 집어 넣는 값

 

argparse

  • python script 개발 시 하나의 Script의 동작을 여러 상황에 따라 다르게 동작하도록 할 때 사용
  • python에서 arugment를 사용하기 위해서 내장함수 argparse 모듈 사용
  • 다른 동작을 만들어 내기 위해 Script 실행 시 Argument를 붙여서 원하는 옵션 지정

 

주요 모듈

  • argparse 라이브러리 설치 및 import하기
  • ArgumentParser() : argument를 받기 위한 객체 만들기
  • add_argument() : 만든 객체에 argument 추가하기
  • parse_args() : argument 분석하기

 

예제

 

## argparse 설치 및 import
import argparse

## argument를 받기 위한 객체 만들기
parser = argparse.ArgumentParser()

## 객체에 argument 추가하기

### 필수 argument 추가
parser.add_argument('arg_A', type=int) # type이 int인 arg_A 이름의 필수 인자 추가
parser.add_argument('arg_B', type=str) # type이 str인 arg_B 이름의 필수 인자 추가

### 옵셧 argument 추가
parser.add_argument('-C', '--arg_C', type=str, default='cocoa')
# type이 str인 arg_C 이름(약어 C)인 옵션 인자 추가(미입력시 초기값 cocoa)

## argument 분석
args = parser.parse_args()

print("arg는 뭘까?")
print(args)

 

위와 같은 파이썬 스크립트를 argument.py 파일로 만들고 이것을 터미널에서 실행해보았다.

 

(TEST_ENV) D:\TEST_PY>python argument.py
usage: argument.py [-h] [-C ARG_C] arg_A arg_B
argument.py: error: the following arguments are required: arg_A, arg_B

(TEST_ENV) D:\TEST_PY>python argument.py 5 BB
arg는 뭘까?
Namespace(arg_A=5, arg_B='BB', arg_C='cocoa')

 

첫번째는 필수 argument인 arg_A와 arg_B를 입력하지 않아서 오류가 발생하였다. 하여 다시 arg_A 인자로 5, arg_B 인자로 BB를 입력해주었더니 제대로 동작하여 argument가 출력된 것을 확인 할 수 있다.

 

인수 지정 정보를 확인하고 싶으면 -h를 지정하면 된다.

 

(TEST_ENV) D:\TEST_PY>python argument.py -h
usage: argument.py [-h] [-C ARG_C] arg_A arg_B

positional arguments:
  arg_A
  arg_B

optional arguments:
  -h, --help            show this help message and exit
  -C ARG_C, --arg_C ARG_C

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
반응형