[Python] argparse를 이용한 입력 파라미터 받는 방법

2021. 4. 28. 01:40 Python/Python 프로그래밍

들어가며:

  모든 언어를 사용하다 보면, 실행시에 파라미터를 입력받아서 처리하는 로직을 구현해야하는 경우가 많다. 자주사용하기 때문에 최초에 한번 나만의 모듈을 만들어놓고, 그대로 계속 재활용해서 사용하면 좋다. 물론 내가 sys.argv[0], sys.argv[1]의 들어온 값을 파싱해서 사용해도 되지만, 파이썬의 장점인 패키지가 많은것을 활용하는게 좋다고 생각한다. 이번에 소개할 내용은 argparse를 이용해서 매개변수를 입력받는 방법이다. 

  argparse는 내가 입력하는 parameter의 옵션과 값을 입력받아줄 뿐만 아니라 help도 지원하니 개발자도, 사용자도 쉽게 사용을 할 수 있도록 되어 있다. 보통 우리가 커맨드창에 -h 옵션을 줘서 optional  arguments를 확인을 할 수 있도록 지원한다. 

  아래 명령어를 주면 test.py는 arguments로 무슨 값을 받고, 그 값은 어떤값을 나타내는지 설명해준다. 얼마나 편한가.. 구현하는 부분을 보면 더 편하다.

$ python test.py —help

usage: test.py [-h] [—input_dir INPUT_DIR] [—output_dir OUTPUT_DIR]
optional arguments:
  -h, —help            show this help message and exit
  —input_dir INPUT_DIR
                        input file directory
  —output_dir OUTPUT_DIR
                        output file directory

 

설치방법:

$ sudo pip install argparse

 

사용방법:

FLAGS에 값을 넣고, 어느 함수에서도 자유자재로 파라미터 값에 접근이 가능하도록 구현을 하였다. 

 

import argparse

FLAGS = None

def main():
    print FLAGS.input_dir
    print FLAGS.output_dir

if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('--input_dir', type=str, default='/home/banana/input', help='input file directory')
    parser.add_argument('--output_dir', type=str, default='/home/banana/output', help='output file directory')

    FLAGS, unparsed = parser.parse_known_args()
    main()

 

출처 : ourcstory.tistory.com/193?category=630693