我想有一個參數,我的程序,有一些可選的參數以及一些必要的參數。事情是這樣的:的Python argparse可選的分論點
[--print text [color [size]]
,所以你可以通過它的部分包括:
mycommand --print hello
mycommand --print hello blue
mycommand --print hello red 12
可能有多個,這些所以它是一個單一的add_argument。例如:
[--print text [color]] [--output filename [overwrite]]
我能做到這一點接近我想要什麼樣的參數:
>>> parser = argparse.ArgumentParser()
>>> act = parser.add_argument('--foo', nargs=3, metavar=('x','y','z'))
>>> act = parser.add_argument('--bar', nargs='?')
>>> act = parser.add_argument('--baz', nargs='*')
>>> parser.print_help()
usage: [-h] [--foo x y z] [--bar [BAR]] [--baz [BAZ [BAZ ...]]]
optional arguments:
-h, --help show this help message and exit
--foo x y z
--bar [BAR]
--baz [BAZ [BAZ ...]]
但並不完全。有沒有辦法用argparse來做到這一點?我知道我可以將它們全部製作成nargs="*"
,但是--help不會列出可選參數的名稱。如果我通過nargs="*"
和metavar的元組,argparse會拋出異常。
感謝。這太糟糕了。 – jterrace 2011-03-11 03:44:33