2017-03-13 1 views
0

일반적으로 위치 인수가 필요한 스크립트가 있습니다 : some-script POS. 그러나 "--version"플래그가있는 경우 위치 지정 arg 요구 사항을 "포기"하고 싶습니다. some-script --version.argparse 플래그를 사용하여 위치 인수를 건너 뛰기

argparse 프레임 워크에서이를 수행하는 적절한 방법이 있습니까?

나는 선택적으로 "--version" in sys.argv을 사용할 수 있지만 argparse를 사용하고 싶습니다.

+0

가'version'에 일이 무슨 뜻이야? 메시지를 출력하고 ('help'와 같은)'args'에서 몇 가지 값을 설정하십시오 (예 : 'store_true') – hpaulj

답변

2

이 가능하게하는 version action있다 :

parser.add_argument('--version', action='version', version='%(prog)s 1.0') 
1

nargs='?'을 설정하여 위치 지정 인수를 선택적으로 설정하고 코드에 오류가없는 경우이를 발생시켜야합니다. 예를 들어 :

parser.add_argument('POSITIONAL', dest='positional', nargs='?') 
... 
if parsed.positional is None: 
    print('Positional argument "POSITIONAL" is required') 
    sys.exit(1) 
+0

불행히도, 제 경우에는 위치 인수가 필요하며, 이것을 잡으려고 argparse를 사용합니다. 제공되지 않으면 오류가 발생합니다. 그래서 나는 선택적으로 만들 수 없다. 또한 하나의 필수 위치 지정 인수 나 기타 복잡한 논리가있는 경우에는 확장되지 않습니다. – erjoalgo