>source

명령 줄 도구를 개발하기 위해 Python에서 Argparse 모듈을 사용하고 있습니다. 다음은 파서 코드입니다.

from argparse import ArgumentParser
def arguments():
    parser = ArgumentParser() 
    parser.add_argument('-c' , '--comms' , action = "store" , default = None , type = str , dest = "command",
                        help = 'Choosing a Command')
    parser.add_argument( '-s' , '--search' , action = 'store' , default = None , type = str , dest = 'search_path'  ,
                        help = 'Search for a command' )
    parser.add_argument(  '-f' , '--config' , action = 'store_true' ,
                        help = 'Show the present configuration')
    parser.add_argument('--flush_details' , action = "store_false" , 
                        help = "Flushes the current commands buffer") 
    
    return parser.parse_args() 
def main():
    
    parser_results = arguments() 
    #More code comes here to analyze the results

그러나 코드를 실행하면 python foo.py --help , 인수 구문 분석 후 스크립트를 실행하지 않습니다. 행동을 멈추기 위해 할 수있는 일이 있습니까? 요청 만해도 파서 결과를 분석하고 싶습니다. --help 스위치.

이후에도 스크립트를 계속하려면 어떻게해야하는지 알고 싶습니다. --help 사용 되왔다

  • 답변 # 1

    사용자 Thierry Lathuille이 댓글에서 말했듯이, --help 도움말을 인쇄하고출구.

    어떤 이유로 든 도움말을 인쇄하고스크립트 실행, 다음과 같이 자신의 인수를 추가 할 수 있습니다.

    import argparse
    parser = argparse.ArgumentParser(description="This script prints Hello World!")
    parser.add_argument("-rh", "--runhelp", action="store_true", help="Print help and run function")
    if __name__ == "__main__":
        args = parser.parse_args()
        if args.runhelp:
            parser.print_help()
        print('Hello World!')
    
    

    스크립트 이름이 main.py :

    >>> python main.py -rh
    usage: main.py [-h] [-rh]
    This script prints Hello World!
    optional arguments:
      -h, --help      show this help message and exit
      -rh, --runhelp  Print help and run function
    Hello World!
    
    

    편집하다: 당신이 사용을 주장한다면 --help 사용자 지정 인수 대신 :

    import argparse
    parser = argparse.ArgumentParser(description="This script prints Hello World!", add_help=False)
    parser.add_argument("-h", "--help", action="store_true", help="Print help and run function")
    if __name__ == "__main__":
        args = parser.parse_args()
        if args.help:
            parser.print_help()
        print('Hello World!')
    
    

    스크립트 이름이 main.py :

    >>> python main.py -h
    usage: main.py [-h]
    This script prints Hello World!
    optional arguments:
      -h, --help  Print help and run function
    Hello World!
    
    

  • 답변 # 2

    비고 : 기존 사용을 존중하지 않고 사용자를 방해 할 수 있으므로 그렇게해서는 안됩니다. 나머지 답변에 대해서는 당신이 그것을 알고 있고 일반적인 사용을 존중하지 않는 심각한 이유가 있다고 가정합니다.

    이미징 할 수있는 유일한 방법은 표준을 제거하는 것입니다. -h|--help 직접 처리하고 설치하십시오.

    parser = ArgumentParser(add_help=False) 
    parser.add_argument('-h' , '--help', help = 'show this help', action='store_true')
    ...
    
    

    그런 다음 옵션 처리에서 다음을 추가합니다.

    parser_results = parser.parse_args()
    if parser_results.help:
        parser.print_help()
    
    

  • 답변 # 3

    설정 add_help 매개 변수 argparse.ArgumentParser ...에 False 비활성화하려면 -h--help :

    parser=argparse.ArgumentParser(add_help=False)
    
    

    그런 다음 --help :

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

관련 자료

  • 이전 GCD가 1이고 그 숫자가 파이썬에서 주어진 것보다 작은 숫자를 찾는 방법
  • 다음 bash - sed 문자열을 파이프와별로 대체