2017-12-14 28 views
0

하지 않고, 필수 인수를 추가 -는 argparse 가능성이 코드 조각되어 다음 add_subparsers

parser = argparse.ArgumentParser() 
#External Modules 
parser.add_argument('--foo', action='store_true', dest='FOO_OPTION', help='builds foo') 
parser.add_argument('--bar', action='store_true', dest='BAR_OPTION', help='builds bar') 
parser.add_argument('--xyz', action='store_true', dest='XyZ_OPTION', help='builds xyz') 

program.py --foo 
program.py --bar 
program.py --xyz 

완벽하게 작동 명령을 호출.

그러나

program.py --foo -d /usr/local/include 

이 추가 아규먼트 그냥 --foo입니다 같은 --foo의 또 다른 필수 아규먼트가있다. 가능한 가장 쉬운 방법으로이를 어떻게 달성 할 수 있습니까?

+1

이것을 수행하기위한'argparse' 메커니즘이 없습니다. 구문 분석 후에 이것을 테스트해야합니다. – hpaulj

답변

0

nargs 인수를 사용할 수 있습니다. 예를 들어

,

parser.add_argument('--foo', nargs=2) 
args = parser.parse_args() 
print(args.foo) 

그러면, python program.py --foo bar baz['bar', 'baz'] 준다.

대시 때문에 foo의 값으로 -d을 사용할 수 없다는 경고가 있습니다.

+0

아니면 기본값 인'store'와'nargs'만으로'--foo'는 하나의 인자를 요구합니다. 'args.foo'는 제공되지 않으면 기본값'None'이됩니다. – hpaulj

+0

add_subparsers 도움을 사용 하시겠습니까? add_subparsers에 대한 유일한 관심사는 단 하나의 인수 (foo)로 인해 다른 모든 인수 (bar 및 xyz)를 변경해야한다는 것입니다. 내 이해가 맞습니까? – infoclogged