2013-07-18 77 views
4

隨着argparse顯示 '選擇',我有以下行:的Python:不與argparse

parser.add_argument("-p", "--parameter", type=str, default=None, nargs='+', 
         help="some option", 
         choices=allValues.keys() 
         ) 

所得help消息顯示在allValues所有值:

-p {a,b,c,d,e,f,g,h,i,l,m; a,b,c,d,e,f,g,h,i,l,m} [{a,b,c,d,e,f,g,h,i,l,m} , - 參數{a,b,c,d, e,f,g,h,i,l,m; a,b,c,d,e,f,g,h,i,l,m} [{a,b,c,d, e,f,g,h, A,B,C,d,E,F,G,H,I,L,M} ...] 一些選項

能否從上面除去{a ,b ,c , d, e, f, g, h, i, l, m; a ,b ,c , d, e, f, g, h, i, l, m}只是顯示名稱的參數和幫助消息?

回答

8

使用metavar參數::

parser.add_argument("-p", "--parameter", type=str, default=None, nargs='+', 
        help="some option", 
        choices=allValues.keys(), 
        metavar='PARAMETER' 
        ) 

這會給::

-p PARAMETER, --parameter PARAMETER some option 

如果你不想在你表現出metavariable可以考慮通過''metavar。否則,我相信你將不得不創建自己的自定義格式器類並將其傳遞給ArgumentParser