我試圖查找堆棧溢出已經答案,但無法找到我的具體情況的確切答案。Python argparse鍵=值參數
這第一個鏈接在第一部分有相同的問題,但它是沒有答案的 (python argparse: parameter=value)。這第二個問題是類似的,但我似乎無法得到它適用於我的具體情況 (Using argparse to parse arguments of form "arg= val")。
所以我的情況是這樣的 - 我正在重寫一個被其他腳本使用的python包裝器(我不希望修改這些其他腳本)。目前,python包裝被調用,其形式爲--key=value
,其形式爲多個不同的參數,但是被手動解析。我想用argparse來解析它們。
N.B.參數名稱很笨拙,所以我正在使用add_argument中的dest
選項進行重命名。
parser = argparse.ArgumentParser(description='Wrappin Ronnie Reagan')
parser.add_argument("--veryLongArgName1", nargs=1, dest="arg1", required=True)
parser.add_argument("--veryLongArgName2", nargs=1, dest="arg2")
parser.add_argument("--veryLongArgName3", nargs=1, dest="arg3")
userOpts = vars(parser.parse_args())
其中,而顯然是正確解析通過命令行,它顯示爲幫助:
usage: testing_argsparse.py [-h] --veryLongArgName1 ARG1
[--veryLongArgName2 ARG2]
[--veryLongArgName3 ARG3]
testing_argsparse.py: error: argument --veryLongArgName1 is required
但我想的是,所有的參數都與--key=value
格式,而不是--key value
規定。即
usage: testing_argsparse.py [-h] --veryLongArgName1=ARG1
[--veryLongArgName2=ARG2]
[--veryLongArgName3=ARG3]
testing_argsparse.py: error: argument --veryLongArgName1 is required
在此先感謝!
我想限制它只接受這些參數的'--key = value'格式(即不應該接受'--key value'),如果可能的話!我還想要自動生成的使用/幫助文本來反映這一要求。 – Meep 2013-04-10 03:39:51