Python을 통해 선택적 매개 변수 수신

6789 단어 Python
별편 보도에 명령행 파라미터를 수신하는 방법을 썼다
나는 도구를 만들고 필요할 때만 선택할 수 있는 매개 변수를 지정하려고 했는데 찾아보니 방법이 달라져서 적어 놓았다.

선택적 매개변수 적용하기


매개변수 설정


argparse 모듈의 ArgumentParer를 사용합니다.
만들려는 매개변수를 설정하는 ArgumentParer를 생성합니다.

매개변수 추가


매개변수 추가는 ArgumentPareradd_argument 함수에서 수행됩니다.add_argument 함수에 전달되는 매개 변수는 다음과 같은 느낌이 있다(여기 쓴 것 외에 몇 개 더 있다)
  • 제1~n 매개 변수
    매개변수 이름을 지정합니다.여러 개를 지정할 수 있습니다.
    여기에 지정한 이름에 접두사 - 를 붙이면 선택할 수 있는 인자가 됩니다.
    매개변수 이름이 -로 시작되지 않으면 위치 매개변수1로 변경됩니다.
  • type매개변수 유형을 지정합니다.
  • default기본값을 지정합니다.
    이 값은 실행 시 선택적 매개변수가 지정되지 않은 경우 사용됩니다.  
  • help -h help가 나타날 때 표시할 설명문을 선택할 수 있습니다.
  • 다음 느낌으로 설정.
    option_parser.py
    from argparse import ArgumentParser
    
    
    def get_option(batch, epoch):
        argparser = ArgumentParser()
        argparser.add_argument('-b', '--batch', type=int,
                               default=batch,
                               help='Specify size of batch')
        argparser.add_argument('-e', '--epoch', type=int,
                               default=epoch,
                               help='Specify number of epoch')
        argparser.add_argument('-dlc', '--drawLearningCurve', type=bool,
                               default=False,
                               help='Whether to draw learning curve after learning')
        argparser.add_argument('-po', '--predictOnly', type=bool,
                               default=False,
                               help='Only execute predict.')
        return argparser.parse_args()
    

    매개변수 사용


    위의 매개변수는 ArgumentParerer의 속성2으로 액세스할 수 있습니다.
    다음 소스에서는 선택적 매개변수 설정 함수get_option를 호출하여 ArgumentParer를 수신합니다.
    main.py
    if __name__ == '__main__':
        args = get_option(BATCH_SIZE, EPOCHS)
    
        print('batch : ' + str(args.batch))
        print('epoch : ' + str(args.epoch))
        print('drawLearningCurve : ' + str(args.drawLearningCurve))
        print('predictOnly : ' + str(args.predictOnly))
    
        ~ 省略 ~
    

    매개변수 지정하기


    이런 느낌.

    매개변수 도움말


    이런 느낌.

    한 마디로 하면 일반적인 매개 변수가 되고dd의 순서에 따라 실행할 때의 매개 변수 앞에서부터 순서대로 결합하여 식별한다. 
    이 단어가 있는지 없는지... 

    좋은 웹페이지 즐겨찾기