argparseパッケージでは、パラメーターmetavar
はプログラムの表示されたヘルプメッセージを変更します。次のプログラムは動作することを意図したものではなく、単にパラメータの動作を示すために使用されていmetavar
ます。
import argparse
if __name__ == '__main__':
parser = argparse.ArgumentParser(description = "Print a range.")
parser.add_argument("-range1", nargs = 3, type = int, help = "Specify range with: start, stop, step.", metavar = ("start", "stop", "step"))
parser.add_argument("-range2", nargs = 3, type = int, help = "Specify range with: start, stop, step.", metavar = "r2")
対応するヘルプメッセージは次のとおりです。
usage: main.py [-h] [-range1 start stop step] [-range2 r2 r2 r2]
Print a range.
optional arguments:
-h, --help show this help message and exit
-range1 start stop step
Specify range with: start, stop, step.
-range2 r2 r2 r2 Specify range with: start, stop, step.
-range1
との違いに注意してください-range2
。明らか-range1
に、ヘルプメッセージの推奨される方法です。
この時点まで、すべてが私には明らかです。ただし、オプションの-range1
引数を位置range1
引数に変更すると、argparsemetavar
はパラメーター( )のタプルを処理できませんValueError: too many values to unpack
。
私がそれを機能させることができた唯一の方法は、それ-range2
が行われる方法でした。しかし、ヘルプメッセージは、この場合ほど良くはありません-range1
。
ケースと同じヘルプメッセージを取得する方法はあります-range1
が、オプションではなく位置引数を取得する方法はありますか?