본문 바로가기

SW/python

[python] argparse 사용법

주요 설명은 아래 주소에서 확인할 수 있습니다. 

 

사용법 정리

import argparse

if __name__ =="__main__":
    parser = argparse.ArgumentParser(description="앞 설명", epilog="뒷 설명")
    parser.add_argument("-f", "--func", required=필수유무,type=변수타입, help="-h 시 나오는 설명")
    
    args = parser.parse_args()

    print(type(args.func))

 

docs.python.org/ko/3/library/argparse.html

 

argparse — 명령행 옵션, 인자와 부속 명령을 위한 파서 — Python 3.8.6rc1 문서

argparse — 명령행 옵션, 인자와 부속 명령을 위한 파서 소스 코드: Lib/argparse.py argparse 모듈은 사용자 친화적인 명령행 인터페이스를 쉽게 작성하도록 합니다. 프로그램이 필요한 인자를 정의하면

docs.python.org

 

여기서는 간단한 사용법을 알아보겠습니다. 

 

 

argparse는

 

python code를 실행할때 인자를 전달받기 위해

사용할 수 있는 package 입니다. 

 

 

가장 기본이 되는 사용은 아래와 같습니다. 

 

import argparse

if __name__ =="__main__":
    parser = argparse.ArgumentParser(description="앞 설명", epilog="뒷 설명")
    parser.add_argument("-f","--func", required=True, help="func value")
    
    args = parser.parse_args()

    print(args.func)

parser를 선언할 때 ArgumentParser에 전달하는

 

description은 앞 부분에 나오는 설명을

epilog는 뒷부분에 나오는 설명을 의미합니다.

 

 

위에서 보시는 것 처럼

 

python main.py -h

 

위와 같이 실행하면

 

설명이 출력되는데 그때 앞(description) 뒤(epilog)로 설명이 붙게 됩니다. 

 

코드에 있는

 

parser.add_argument("-f","--func", required=True, help="func value")

 

위 코드를 통해서 입력받을 인자를 만들 수 있습니다.

 

정상적으로 실행되는 것을 확인하셨다면

이어서 변수를 추가 해보겠습니다. 

 

parser.add_argument("-f","--func", required=True, help="func value")

 

위 코드를 변형하여 추가하면 됩니다.

 

아래와 같이 진행하였습니다. 

 

import argparse

if __name__ =="__main__":
    parser = argparse.ArgumentParser(description="앞 설명", epilog="뒷 설명")
    parser.add_argument("-f","--func", required=True, help="func value")
    parser.add_argument("-a","--add", required=True, help="add value")
    
    args = parser.parse_args()

    print(args.func)
    print(args.add)

 

 

잘 되는 모습을 보실수 있습니다. 

 

parser.add_argument("-b""--bdd"required=Truehelp="add value")

 

위 add_argument에서

 

required는 필수 인지 아닌지를 의미 합니다. 

required=True인 경우 인자를 입력하지 않으면 에러가 발생합니다. 

required=False인 경우 인자를 입력하지 않아도 에러가 발생하지 않습니다.

 

import argparse

if __name__ =="__main__":
    parser = argparse.ArgumentParser(description="앞 설명", epilog="뒷 설명")
    parser.add_argument("-f", "--func", required=True, help="func value")
    parser.add_argument("-b", "--bdd", required=True, help="add value")
    
    args = parser.parse_args()

    print(args.func)
    print(args.bdd)

위 코드의 -h 출력은 아래와 같고 

 

 

required를 False로 바꾼뒤 -h를 출력해보면

import argparse

if __name__ =="__main__":
    parser = argparse.ArgumentParser(description="앞 설명", epilog="뒷 설명")
    parser.add_argument("-f", "--func", required=True, help="func value")
    parser.add_argument("-b", "--bdd", required=False, help="add value")
    
    args = parser.parse_args()

    print(args.func)
    print(args.bdd)

 

 

 

다른 점이 보이시나요?

 

보시는 것 처럼 인자의 필수 여부를 선택할 수 있습니다. 

 

 

이번에는 입력받을 변수의 type을 확정지어 보겠습니다. 

 

아주 쉽습니다. 

 

add_argument에

type=원하는 type

 

위와 같이 넣어주면 됩니다. 

 

예시를 들어보겠습니다. 

import argparse

if __name__ =="__main__":
    parser = argparse.ArgumentParser(description="앞 설명", epilog="뒷 설명")
    parser.add_argument("-f", "--func", required=True,type=str, help="func value")
    parser.add_argument("-b", "--bdd", required=False,type=int, help="add value")
    
    args = parser.parse_args()

    print(type(args.func))
    print(type(args.bdd))

 

'SW > python' 카테고리의 다른 글

[python] 프로그래밍 시작하기  (1) 2020.08.21