2013-08-07 27 views
11

我正在使用argparse.ArgumentParser()在我的腳本中,我想顯示腳本的pydoc描述作爲'--help'選項的一部分的認識。將pydoc的描述顯示爲argparse的一部分'--help'

一個可能的解決方案可以使用formatter_class或ArgumentParser的description屬性來配置的幫助顯示。但在這種情況下,我們需要在內部使用'pydoc'命令來獲取描述。

我們是否有其他方法可以做到這一點?

+0

yaa,'__doc__'對我來說已經足夠了。謝謝 !有沒有其他的方式,而不是使用'formatter_class/description'? – baky

回答

20

您可以從__doc__全局中檢索腳本的文檔字符串。要將其添加到腳本的幫助中,您可以設置解析器的參數description

"""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() 

然後幫助將是這樣的:

$ 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 

可以使用epilog關鍵字參數,而不是description到文檔字符串移動的幫助下結束,而不是立即使用字符串以下。

+3

如果他有多行文檔字符串,說明會將其合併到一行中。最好使用'ArgumentParser(usage = __ doc __)' –

+0

哦,對。您需要設置'formatter_class = argparse.RawDescriptionHelpFormatter'來保留格式。恐怕我只是複製了他已經嘗試過的東西,現在。 – chepner