如何在Python中循环遍历optparse.OptionGroup

时间:2017-01-16 15:15:05

标签: python python-2.6 optparse

我试图循环访问某组参数(仅限'-p')。 我在终端中声明如下:Vue.component('form-select', { props: ['options', 'value', 'onChange', 'validate'], //Added one more prop template: '#your-template', mounted: function () { }, methods: { change (opt) { if (this.validate !== undefined) { var isValid = this.validate(this.value) if(!isValid) return; } this.$emit('input', opt) }, }, }) 。我的程序输出只有python program.py -p paramOne paramTwo,我不明白为什么。我的目标是获得以下输出:

paramOne

有谁能告诉我代码中的错误在哪里?

以下是代码:

paramOne
paramTwo

P.S。我正在运行Python 2.6.6

1 个答案:

答案 0 :(得分:1)

如果您未指定nargs,则会使用1作为默认值;只消耗一个位置参数。

指定nargs=2以获得2个值:

groupParam.add_option(
    '-p', '--parameters', action='store', dest='paramNum', type='string',
    nargs=2,  # <---
    help=('specify number of parameters (Optional)')
)

根据documentation

  

当此选项为时,应使用多少个类型类型的参数   看到。 如果&gt; 1,optparse会将一组值存储到dest。

因此,应修改最后一个循环以检查tuple是否按照您的要求进行打印:

for groupParam1 in groupParam.option_list:
    values = getattr(options, groupParam1.dest)
    if isinstance(values, tuple):
        for value in values:
            print(value)