在Python OptParser中解析任意数量的参数
我想知道如何在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
你有没有试过去掉 n_args 这个部分?文档里的例子显示你其实不需要这个东西。
3
optparse模块在Python 2.7中已经不再推荐使用(这个版本刚发布不久!)。如果你能升级的话,可以使用它的替代品argparse模块。我觉得这个模块能满足你的需求。它支持在nargs
中使用'*'
这个值。