argparse 输出未对齐

arparse output not aligned

我正在使用 argparse 作为参数,我有很多 argparse 语句。我希望在输出中大写 DELETE 不应该打印或者它们应该对齐。 在我的例子中,对于另一个 argparse,大写单词没有在单个列中对齐。

   parser = argparse.ArgumentParser()
   parser.add_argument( '-del'    ,action='store'          ,dest='delete'       , help="Del a POX"
   parser.add_argument( '-a'    ,action='store'          ,dest='add'       , help="add a POX"
   return parser

   python myscript.h -h
   -del DELETE Del a POX
   -a     Add  add a POX

根据你的参数我得到:

In [417]: parser=argparse.ArgumentParser()
In [418]: a1=parser.add_argument('-del',dest='delete', help='help')
In [419]: a2=parser.add_argument('-a',dest='add', help='help')
In [420]: parser.print_help()
usage: ipython3 [-h] [-del DELETE] [-a ADD]

optional arguments:
  -h, --help   show this help message and exit
  -del DELETE  help
  -a ADD       help

DELETEADD 是元变量,代表将跟随标志的参数。在正常的帮助显示中,它们紧跟在标志 -a ADD 之后。我不知道是什么在“-a Add”中产生了额外的 space。

我会建立你的论点:

In [421]: parser=argparse.ArgumentParser()
In [422]: a1=parser.add_argument('-d','--delete', help='help')
In [423]: a2=parser.add_argument('-a','--add', help='help')
In [424]: parser.print_help()
usage: ipython3 [-h] [-d DELETE] [-a ADD]

optional arguments:
  -h, --help            show this help message and exit
  -d DELETE, --delete DELETE
                        help
  -a ADD, --add ADD     help

还有metavar参数,这里是一个空字符串:

In [425]: parser=argparse.ArgumentParser()
In [426]: a1=parser.add_argument('-d','--delete', metavar='', help='help')
In [427]: a2=parser.add_argument('-a','--add', metavar='', help='help')
In [428]: parser.print_help()
usage: ipython3 [-h] [-d] [-a]

optional arguments:
  -h, --help      show this help message and exit
  -d , --delete   help
  -a , --add      help

dest 通常是从第一个 -- 标志字符串推导出来的;但可以像您一样明确设置。 metavar 派生自 dest - 通常大写 - 事实上我不知道是什么产生了 Add 而不是 ADD.

它对齐行的 help 部分,但不对齐 matavar 部分。