2017-01-20 3 views
0

나는 현재 다음과 같습니다 사용법 문을 출력하는 argumentParser 가지고있다작성 사용자 정의 사용 문> 1

usage: body arm hand [-h] finger finger finger finger finger 

바디는 다음 팔, 주요 파서입니다 subparser 및 hand는 서브 파서의 서브 파서입니다. 손가락은 5 개의 입력을 받아들이는 인수를 나타냅니다.

하나의 인수에 대해 내장 된 argparse 함수를 사용하여 사용자 지정 사용 문을 작성할 수있는 방법이 있습니까? 모양은 다음과 같습니다 :

usage: body arm hand [-h] thumb index middle ring pinky 

고마워요!

답변

2

튜플 metavar은 작업

In [270]: p = argparse.ArgumentParser(prog='prog') 
In [271]: p.add_argument('finger', nargs=5, 
    metavar=('thumb', 'index', 'middle', 'ring', 'pinky')); 
In [272]: p.print_usage() 
usage: prog [-h] thumb index middle ring pinky 

그것은 튜플이 아닌 목록 수 있으며, nargs과 동일한 길이를 가지고 있어야 할 것이다. argparse 문서에서 metavar을 확인하십시오.

+0

도움을 주셔서 감사합니다! 나는 그것이 바로 문서에 맞았다는 것을 깨달았다. 튜플이 나에게 효과가없는 것 같아요. 언팩을하기에는 너무 많은 값을 던지니까요. – msun

+0

'nargs'가 무엇입니까? 나는 원하는 디스플레이에서 5를 가정했다. – hpaulj

+0

3 개가 있고 크기가 3 인 튜플을 사용하고 있습니다. 이 줄은 parser.add_argument ('ipmi', nargs = 3, metavar = ('user', 'host', 'pwd'))입니다. 그것은 내가 사용하고있는 랩퍼 함수에 관한 것이므로이 문제와 완전히 관련이 없습니다. 메타 바를 지적 해 주셔서 감사합니다! – msun