의 끝 argparse
docs 페이지에서 기본적인 차이점을 설명합니다.
opts, args = parser.parse_args(sys.argv[1:])
args = parser.parse_args(sys.argv[1:])
는 optparse
, 모든 인수가 opts
변수에 캡처 플래그. 그 외 모든 것은 args
목록에 있습니다.
args, extras = parser.parse_known_args(sys.argv[1:])
extras
문자열가 그 수있는 '
argparse
에서
모두 플래그 (또한 선택적 항목)과 positionals가 args
네임
parse_known_args
에서 수집은 optparse
에 가까운 출력을 준다 파싱한다. 대략 optparse
에 의해 반환 된 두 번째 변수에 해당합니다.
대화 형 셸을 실행하고 몇 개의 파서를 정의한 다음 다른 인수로 재생합니다. 그리고 출력물 ('opts', 'args', 'extras')을 인쇄하여 출력물을 확인하십시오.
추가 질문이있는 경우 질문에 샘플 파서와 출력을 포함하십시오.
In [3]: aparser=argparse.ArgumentParser()
In [4]: aparser.add_argument('-f');
In [5]: aparser.add_argument('bar');
In [6]: oparser=optparse.OptionParser()
In [7]: oparser.add_option('-f')
optparse의 파싱 :
In [22]: opts, rest = oparser.parse_args('-f one two'.split())
In [23]: opts
Out[23]: <Values at 0xaca3a02c: {'f': 'one'}>
In [24]: rest
Out[24]: ['two']
In [25]: opts.f
Out[25]: 'one'
파싱 argparse
In [26]: args = aparser.parse_args('-f one two'.split())
In [27]: args
Out[27]: Namespace(bar='two', f='one')
In [28]: args.f
Out[28]: 'one'
In [29]: args.bar
Out[29]: 'two'
parse_known_args :
In [30]: args, extras = aparser.parse_known_args('-f one two three'.split())
In [31]: args
Out[31]: Namespace(bar='two', f='one')
In [32]: extras
Out[32]: ['three']