0

argparse 여러 번 존재할 수있는 두 개의 인수로 옵션을 구문 분석하려면 어떻게합니까? 이처럼 :Python의 argparse를 사용하여 두 개의 인수로 반복 옵션을 구문 분석하는 방법은 무엇입니까?

$ cmd --repo origin here --repo other there --repo upstream url3 

그리고 분석 된 인수는 다음과 같이 예를 들어 액세스 할 수 있어야합니다 :

args.repo = [('origin', 'here'), ('other', 'there'), ('upstream', 'url3')] 

답변

2
import argparse 
parser = argparse.ArgumentParser() 
parser.add_argument('--repo', nargs=2, action='append') 
parser.parse_args('--repo origin here --repo other there'.split()) 

결과 :

Namespace(repo=[['origin', 'here'], ['other', 'there']]) 
1

와 추가 조치를 사용해야합니다. argparse 문서에서

:

append -이 목록을 저장하고 목록에 각 인수 값을 추가합니다. 이 옵션은 여러 번 옵션을 지정하는 데 유용합니다.

사용 예제 :

>>> parser = argparse.ArgumentParser() 
>>> parser.add_argument('--foo', nargs='*', action='append') 
>>> parser.parse_args('--foo 1 2 --foo 3 4'.split()) 

Namespace(foo=[['1', '2'], ['3', '4']]) 

출처 : https://docs.python.org/3/library/argparse.html#action

또한 나에 의해 최고의 파이썬 인수 파서 패키지 docopt 프로젝트, 한 번 봐 걸릴 수도 있습니다 :