私はPythonでモジュールを使用してコマンドラインインターフェイスを作成しようとしていますが、私の引数の1つについてはヘルプメッセージに問題があります。引数が1つの引数(ファイル名)または3つの引数(ファイル名、列、列)のいずれかを取る必要がありますので、私はそれに近づいどのようにこれは次のようになります。その後、nargs = '+'のとき、どのように[...]のヘルプメッセージが表示されないようにしますか?
parser = argparse.ArgumentParser()
parser.add_argument('--score', nargs ='+', help='score file, default X Y = 2 4',
metavar='FILENAME X Y')
args = parser.parse_args()
とのif-else:
if len(args.score) == 1:
data = open(args.score[0])
S1 = 1
S2 = 3
elif len(args.score) == 3:
data = open(args.score[0])
S1 = int(args.score[1]) - 1
S2 = int(args.score[2]) - 1
else:
print('Error: --score incorrect number of arguments called')
を
-h, --help show this help message and exit
--score FILENAME X Y [FILENAME X Y ...]
score file, default X Y = 2 4
と私は括弧の部分が離れて行きたい:しかし、私のヘルプメッセージは、次のようになります
-h, --help show this help message and exit
--score FILENAME X Y score file, default X Y = 2 4
EDIT
は、ここで私はANSIエスケープコードを使用して、いえハック回避策として、修正プログラムを実装することを選んだ方法は次のとおりです。
parser.add_argument('--score', nargs ='+', help='\x1b[A\b\b\b\b\b\b X Y \x1b[1C\b score file, default X Y = 2 4',
metavar=('FILENAME', ''))
が出力に
usage: test.py [-h] [--score FILENAME [...]]
optional arguments:
-h, --help show this help message and exit
--score FILENAME X Y score file, default X Y = 2 4
を与えてくれてありがとうmetavarタプルのアイデアのために@hpauljに渡します。