之一,我有可以通過以下方式來使用的程序:Python的argparse選擇幾個可選參數
program install -a arg -b arg
program list
program update
有永遠只能是(install
,list
或update
)指定的位置參數之一。並且install
方案中只能有其他參數。
argparse文檔有點密集,我很難弄清楚如何正確地做到這一點。我的add_argument
應該是什麼樣子?
之一,我有可以通過以下方式來使用的程序:Python的argparse選擇幾個可選參數
program install -a arg -b arg
program list
program update
有永遠只能是(install
,list
或update
)指定的位置參數之一。並且install
方案中只能有其他參數。
argparse文檔有點密集,我很難弄清楚如何正確地做到這一點。我的add_argument
應該是什麼樣子?
這看起來像你想使用subparser
s。
from argparse import ArgumentParser
parser = ArgumentParser()
subparsers = parser.add_subparsers()
install = subparsers.add_parser('install')
install.add_argument('-b')
install.add_argument('-a')
install.set_defaults(subparser='install')
lst = subparsers.add_parser('list')
lst.set_defaults(subparser='list')
update = subparsers.add_parser('update')
update.set_defaults(subparser='update')
print parser.parse_args()
如文檔指出,我與set_defaults
相結合,這樣就可以知道被調用了哪些子分析器。
你看過[argparse教程](http://docs.python.org/2.7/howto/argparse.html)嗎? –
@JonathonReinhart,不,我沒有感謝這個鏈接。我會看到我能從中得到什麼。 – n0pe
@TankyWoo,閱讀我問題的最後一段。此外,將這些信息放在SO上可以讓其他人更容易找到相同的信息。如果RTFM是一攬子規則,則SO不存在。 – n0pe