Self-Improvement

python의 argparser 모듈 기본적인 사용법 본문

프로그래밍/Python

python의 argparser 모듈 기본적인 사용법

JoGeun 2019. 1. 10. 10:21

argparse

argparse는 sys.argy를 어떻게 파싱할지 파악합니다. 또한 argparse 모듈은 도움말과 사용법 메시지를 자동 생성하고, 사용자가 프로그램에 잘못된 인자를 줄 때 에러를 발생시켜준다.


간단한 예제 코드

1
2
3
4
5
6
import argparse
 
parser = argparse.ArgumentParser()
parser.add_argument('--testoption', help='testestestest', action='store_true')
 
args = parser.parse_args()
cs


결과물

1
2
3
4
5
6
root@kali:~/python# python testmongodb.py -h
usage: testmongodb.py [-h] [--testoption]
 
optional arguments:
  -h, --help    show this help message and exit
  --testoption  testestestest
cs

코드 3줄을 통해 손 쉽게 도움말을 생성하였다. 

아래의 코드를 통해서 결과물의 'optional arguments'에 해당 코드가 추가된걸 확인할 수 있다.

parser.add_argument('--testoption', help='testestest', action='store_true')



아래의 parser을 할시에 추가 포맷을 설정해주면 더욱 좋은 결과물이 나오게 된다.

코드 변경

1
2
3
parser = argparse.ArgumentParser(
    formatter_class=argparse.ArgumentDefaultsHelpFormatter #added to show default value
)
cs


결과물

1
2
3
4
5
6
root@kali:~/python# python testmongodb.py -h
usage: testmongodb.py [-h] [--testoption]
 
optional arguments:
  -h, --help    show this help message and exit
  --testoption  testestestest (default: False)
cs
--testoption에 default을 명시를 해주게 되어진다.


인자 값 받은 뒤 실행절차

코드

1
2
3
4
5
6
7
8
9
10
11
import argparse
 
parser = argparse.ArgumentParser(
    formatter_class=argparse.ArgumentDefaultsHelpFormatter
)
parser.add_argument('--testoption', help='testestestest', action='store_true')
args = parser.parse_args()
 
test=args.testoption
if test:
    print("success")
cs
--testoption 옵션을 받으면 결과적으론 success 문자열을 출력한다.

결과물

1
2
root@kali:~/python# python testmongodb.py --t
success
cs
옵션을 --t만 줘도 자동으로 --testoption으로 인식을 하게된다.


새로운 도움말을 만들어보자

코드

1
2
3
4
5
6
7
8
9
import argparse
 
parser = argparse.ArgumentParser(
    formatter_class=argparse.ArgumentDefaultsHelpFormatter
)
new1=parser.add_argument_group("NEW Option")
parser.add_argument('--testoption', help='testestestest', action='store_true')
new1.add_argument('--newoption', help='new', action='store_true')
args = parser.parse_args()
cs
새로운 도움말 그룹인 NEW Option을 생성하였으며 이 도움말엔 --newoption 옵션이 추가된다.

결과물
1
2
3
4
5
6
7
8
9
root@kali:~/python# python testmongodb.py -h
usage: testmongodb.py [-h] [--testoption] [--newoption]
 
optional arguments:
  -h, --help    show this help message and exit
  --testoption  testestestest (default: False)
 
NEW Option:
  --newoption   new (default: False)
cs
맨 아래에 NEW Option이 추가된걸 확인할 수 있다.