2013-08-07 4 views
11

내 스크립트에서 argparse.ArgumentParser()을 사용하고 있는데, '--help'옵션의 일부로 내 스크립트의 pydoc 설명을 표시하고 싶습니다. argparse의.argparse '--help'의 일부로 pydoc의 설명을 표시

한 가능성이 솔루션은 도움의 표시를 구성 할 수 formatter_class 또는 ArgumentParser의 description 속성을 사용할 수 있습니다. 그러나이 경우 내부적으로 'pydoc'명령을 사용하여 설명을 가져와야합니다.

우리는 다른 방법으로 (우아 할 정도로) 할 수 있습니까?

+0

yaa,'__doc__ '이면 충분합니다. 감사 ! 'formatter_class/description' 대신에 다른 방법이 있습니까? – baky

답변

20

__doc__ 전역에서 스크립트의 문서 문자열을 검색 할 수 있습니다. 스크립트 도움말에 추가하려면 파서의 description 인수를 설정할 수 있습니다. 당신은 도움의 끝으로 문서화 문자열을 이동 description 대신 epilog 키워드 인수를 사용할 수 있습니다

$ python tmp.py --help 
usage: tmp.py [-h] foo 

My python script 

Script to process a file 

positional arguments: 
    foo   Name of file to process 

optional arguments: 
    -h, --help show this help message and exit 

즉시 사용 문자열을 따르는 대신, : 같은

"""My python script 

Script to process a file 
""" 

p = argparse.ArgumentParser(description=__doc__, 
          formatter_class=argparse.RawDescriptionHelpFormatter) 
p.add_argument('foo', help="Name of file to process") 
p.parse_args() 

은 그런 도움이 찾을 것입니다.

+3

다중 행 문서화 문자열이있는 경우 설명이 한 줄로 병합됩니다. 'ArgumentParser (usage = __ doc __)'를 사용하는 것이 더 좋습니다. –

+0

아 맞습니다. 포맷팅을 유지하려면'formatter_class = argparse.RawDescriptionHelpFormatter'을 설정해야합니다. 나는 이미 그가 이미 시도한 것들을 복제하는 것 같아. – chepner