카테고리 없음

Python Argparse

ㅈ현 2022. 7. 1. 00:43

argparse 라이브러리 사용법

 

argparse — Parser for command-line options, arguments and sub-commands — Python 3.10.5 documentation

argparse — Parser for command-line options, arguments and sub-commands Source code: Lib/argparse.py The argparse module makes it easy to write user-friendly command-line interfaces. The program defines what arguments it requires, and argparse will figure

docs.python.org

명령행 옵션 기본 사용법 

실행 파라미터로 arg1이라는 파라미터를 가지며, 해당 파라미터는 str 타입으로 파싱되는 가장 기본적인 사용법이다.

Example 

#arg_example1.py
import argparse
parser = argparse.ArgumentParser(description='argparse Example')
parser.add_argument('--arg1')
args = parser.parse_args()

print(args.arg1)
 

실행 

python arg_example1.py --arg1 Example
Example
 

 

-h –help 파라미터 

실행시 명령행 옵션중 -h, –help는 기본적으로 선언되어있는 옵션이며, 해당 옵션은 사용 가능한 argument들의 목록을 보여준다.

실행 

python arg_example1.py -h
usage: arg_example1.py [-h] [-arg1 ARG1]

argparse Example

optional arguments:
  -h, --help  show this help message and exit
  -arg1 ARG1​

파라미터 추가 

실행 파라미터는 .add_argument()을 통해 추가할 수 있다.
실행 파라미터는 풀네임은 –로 표현, 약어는 -로 표현하는 관습이 있다. 
ex) --epochs, -e => 둘다 같은 epochs라는 파라미터를 의미함.

add_argument의 파라미터 

add_argument에서 자주 사용되는 파라미터로는 다음과 같은 목록이 있다.

  • type : 자료형의 타입을 선언한다 (int, float등)
  • help : 해당 argument의 도움말을 표시한다.
  • default : 해당 argument를 사용하지 않을떄 기본적으로 사용될 값이다.
  • required : default값은 False이며, True로 선언시, 해당 argument는 실행시 반드시 넣어줘야 한다.
  • action : default값은 ‘store’ 이며 ‘store’는 인자값을 저장한다.
    • append : 리스트로 저장할때 사용되며 해당 옵션을 주면 여러번 argument를 사용할때마다 해당 값들이 리스트로 저장된다.

Example 

import argparse
#arg_example2.py
parser = argparse.ArgumentParser(description='argparse Example')
parser.add_argument('--arg1', help= '첫번째 인자 입니다', default='example1')
parser.add_argument('--arg2, -a2', help= '두번째 인자 입니다', type=int, default=2)
parser.add_argument('--arg3, -a3', help= '세번째 인자 입니다 (이 인자는 반드시 넣어줘야 합니다!)', required=True)
parser.add_argument('--arg4', action='append', help= '네번째 인자 입니다. 이 인자는 여러번 사용될때마다 리스트로 저장합니다.', type=int)

args = parser.parse_args()
print(args)
 

실행 

 
python3 arg_example2.py --arg3 required --arg4 1 --arg4 2
Namespace(arg1='example1', arg4=[1, 2], **{'arg2, _a2': 2, 'arg3, _a3': 'required'})