40
import argparse
parser = argparse.ArgumentParser(prog='tool')
args = [('-u', '--upf', 'ref. upf', dict(required='True')),
        ('-s', '--skew', 'ref. skew', {}),
        ('-m', '--model', 'ref. model', {})]
for args1, args2, desc, options in args:  
     parser.add_argument(args1, args2, help=desc, **options)

parser.print_help()

出力:

usage: capcheck [-h] -u UPF [-s SKEW] [-m MODEL]

optional arguments:
  -h, --help            show this help message and exit
  -u UPF, --upf UPF     ref. upf
  -s SKEW, --skew SKEW  ref. skew
  -m MODEL, --model MODEL
                        ref. model

refを印刷するにはどうすればよいですか。-m MODEL, --model MODELオプションを指定してスクリプトを実行すると、別の行に表示されるのではなく、同じ行にモデル-hが表示されますか?

4

4 に答える 4

41

formatter_class引数を指定できます:

parser = argparse.ArgumentParser(prog='tool',
  formatter_class=lambda prog: argparse.HelpFormatter(prog,max_help_position=27))

args = [('-u', '--upf', 'ref. upf', dict(required='True')),
        ('-s', '--skew', 'ref. skew', {}),
        ('-m', '--model', 'ref. model', {})]
for args1, args2, desc, options in args:  
     parser.add_argument(args1, args2, help=desc, **options)

parser.print_help()

注: の実装はargparse.HelpFormatter、名前のみが公開されている非公開です。したがって、コードは の将来のバージョンで機能しなくなる可能性がありargparseます。http://bugs.python.org/max_help_positionで、カスタマイズ用のパブリック インターフェイスを提供する機能リクエストを提出します。

出力

usage: tool [-h] -u UPF [-s SKEW] [-m MODEL]

optional arguments:
  -h, --help               show this help message and exit
  -u UPF, --upf UPF        ref. upf
  -s SKEW, --skew SKEW     ref. skew
  -m MODEL, --model MODEL  ref. model
于 2011-03-28T20:03:02.960 に答える