2016-07-31 50 views
0

我正在使用argparse處理我正在開發的應用程序內的命令行參數。就目前而言,一切都按照廣告宣傳。但是,我遇到了單個參數的幫助格式問題。限制Argparse幫助輸出

optional arguments: 
    -k API_KEY, --key API_KEY 
         API Key to use when querying/updating records 
    -e EMAIL, --email EMAIL 
         Email to use when querying/updating records 

在上面的幫助下格式化,我期待在如何解決重複的參數變量名稱(即-k API_KEY, --key API_KEY)。這似乎是多餘的,並且導致幫助格式與多條線相對於單一的連續線。這是相關的代碼。

if __name__ == '__main__': 
    parser=argparse.ArgumentParser(add_help=False) 
    parser_required=parser.add_argument_group('Required Arguments') 
    parser_required.add_argument('-k', '--key', dest='api_key', type=str, required=False, help='API Key to use when querying/updating records') 
    parser_required.add_argument('-e', '--email', dest='email', type=str, required=False, help='Email to use when querying/updating records') 

雖然我不完全確定如何實現這一點。這是所需的輸出。

optional arguments: 
    -k, --key    API Key to use when querying/updating records 
    -e, --email   Email to use when querying/updating records 
+0

http://stackoverflow.com/questions/9366369/python-argparse-lots-of-choices-results-in-ugly-help-output討論各種選項。除了最簡單的'metavar'解決方案之外,您可以自定義'HelpFormatter'類。在幾個SO問題中提出瞭如何做到這一點的建議。 – hpaulj

回答

1

在每個參數只需設置metavar=''

add_argument('-k', '--key', metavar='', ...) 

Metavars是你的榜樣API_KEYEMAIL