我想有一个参数,我的程序,有一些可选的参数以及一些必要的参数。事情是这样的:的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