2013-08-07 16 views
11

私のスクリプトにargparse.ArgumentParser()を使用しています。私のスクリプトのpydocの説明を '--help'オプションの一部として表示したいのですがargparseの。argparse '--help'の一部としてpydocの説明を表示

一つの可能​​性の解決策は、ヘルプの表示を設定するには、formatter_classまたはArgumentParserのdescription属性を使用することができます。しかし、この場合は、内部的に 'pydoc'コマンドを使用して説明を取得する必要があります。

他にも(エレガントな)方法がありますか?

+0

yaa、 '__doc__'で十分です。ありがとう! 'formatter_class/description'を使う代わりに他の方法がありますか? – baky

答えて

20

スクリプトのドキュメントストリングは、__doc__グローバルから取得できます。スクリプトのヘルプに追加するには、パーサーの引数descriptionを設定します。あなたが代わりにすぐに使用方法文字列を次の、ヘルプの最後にドキュメンテーション文字列を移動する代わりにdescriptionepilogキーワード引数を使用することができます

$ 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

複数行のドキュメントストリングを持っている場合は、その説明を1行にマージします。 'ArgumentParser(usage = __ doc __)'を使う方が良いです。 –

+0

ああ、そうです。書式設定を保持するには、 'formatter_class = argparse.RawDescriptionHelpFormatter'を設定する必要があります。私は彼が既に試したことを複製しているのではないかと恐れています。 – chepner

関連する問題