在Python OptParse中解析任意数量的参数

时间:2010-07-05 18:03:02

标签: python command-line optparse

如何在Python的OptParser中定义具有任意数量参数的选项?

我想要像:

python my_program.py --my-option X,Y  # one argument passed, "X,Y"

python my_prgoram.py --my-option X,Y  Z,W  # two arguments passed, "X,Y" and "Z,W"

OptParser的nargs =选项将我限制为定义的数字。我怎么能这样做?

parser.add_option("--my-options", dest="my_options", action="append", nargs="*")

这将简单地采取--my-option之后的任何内容并将其放入列表中?例如。对于情况1,它应该是[“X,Y”],对于情况2,它应该是[“X,Y”,“Z,W”]。

使用OptParser的方法是什么?

感谢。

2 个答案:

答案 0 :(得分:3)

optarse模块在python 2.7中已弃用(刚刚发布!)。如果可以升级,那么可以使用它替换argparse模块。我认为这有你想要的。它支持'*'的{​​{1}}值。

http://docs.python.org/library/argparse.html#nargs

答案 1 :(得分:0)

您是否尝试过省略n_args位? examples in the docs建议您不需要它。