2013-09-21 1 views

답변

1

argparse에서 --은 다음에 오는 모든 것을 위치 문자열로 취급한다는 것을 의미합니다. 그러나 샘플의 모든 문자열은 그런 모양이므로 --은 아무 것도하지 않습니다. 그래서 나머지 질문은 argparse가 5 개의 문자열을 2 개의 인수에 할당하는 방법을 가정합니다. nargs=2narg='*'은 항상 2 개의 '파일'을 원할 경우 속임수를 사용합니다. +REMAINDER (...)은 2 일에도 작동합니다.

* 다음에 작동하는 것은 *입니다. 이는 RegEx 패턴 '(a*)(a*)'과 유사합니다. 실제로 argparse는 RegEx 패턴 일치를 사용하여 문자열을 위치 인수에 할당합니다. 2 개의 인자를 만들고 다양한 nargs 값을 시도하는 것은 유익 할 수 있습니다.

다른 옵션은 --을 optionals 인수로 대체하는 것입니다 (예 : -cnargs='*'입니다. 파일 인수 또한

+0

을 구문 분석 할 때 그것은 당신을 위해 감사를 파일 객체를 생성합니다. – borntyping

1
>>> parser = argparse.ArgumentParser() 
>>> parser.add_argument('--foo', nargs='*') 
>>> parser.add_argument('--bar', nargs='*') 
>>> parser.parse_args('--foo x y --bar 1 2'.split()) 
Namespace(bar=['1', '2'], foo=['x', 'y']) 

당신은 또한 type=argparse.FileType('w') 또는 type=argparse.FileType('r')를 사용할 수 있으며이 수는 없습니다 이유는 설명 입력