arparse输出未对齐

时间:2016-11-08 21:57:35

标签: python python-2.7 argparse

我使用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

1 个答案:

答案 0 :(得分:0)

我得到你的参数:

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是metavars,是标志后面的参数的站点。在正常的帮助显示中,它们紧跟在标志-a ADD之后。我不知道是什么在' -a添加'中产生额外的空间。

我会用:

设置你的论点
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部分。