2017-09-12 1 views
1

argparse 위치 인수를 선택적 인수와 상호 배타적으로 사용할 수있는 방법을 찾으려고합니다. 예를 들어Argparse 선택 args 위치 대체

: 그냥 시도 '--interactive'인 경우에 지금

./adder 20 32 
Output: 52 
./adder --interactive 
adder> 

는, 그것이 내가 위치 인수를 누락 하더군요.

예 코드 이렇게하는 고급 방법이 있는지 궁금

parser = argparse.ArgumentParser() 
parser.add_argument('a', metavar='First') 
parser.add_argument('b', metavar='Second') 
parser.add_argument('--interactive') 
parser.parse_args() 

되도록 '--interactive'개의 위치 인수를 사용하여 요구를 비활성화 (바람직 argparse 기능을 사용하여).

+0

args 등을 지정하는 실제 코드를 볼 수 있습니까? –

+0

'add_argument ('parms', nargs = '*')'시도한 예제 코드 – Princey

+0

을 추가 했습니까? 위치 인수가 없으면 인수는 목록에 수집되고 목록은 비어 있습니다. – georgexsh

답변

0

일반적으로 위치 지정 인수는 생략 할 수 없습니다. 대안으로 nargs='*'을 시도 할 수 있습니다.

parser = argparse.ArgumentParser() 
parser.add_argument('ab', nargs='*', type='int') 
parser.add_argument('--interactive', action='store_true') 
args = parser.parse_args() 

목록 args.ab을 사용하여 위치 인수를 저장하십시오. 생략되면 args.ab은 빈 목록이됩니다.

관련 문제