如何在 Python 中循环遍历 optparse.OptionGroup
How to loop through optparse.OptionGroup in Python
我正在尝试循环访问某组参数(仅限“-p”)。
我在终端中声明它们如下:python program.py -p paramOne paramTwo
。我的程序输出只有 paramOne
,我不明白为什么。我的目标是获得以下输出:
paramOne
paramTwo
谁能告诉我我的代码哪里出错了?
代码如下:
# Parcing definitions
parser = optparse.OptionParser()
groupParam = optparse.OptionGroup(parser, 'Output handling')
parser.add_option('-q', '--quiet', action='store_false', dest='verbose', default=True,
help=('don\'t print status messages to stdout'))
groupParam.add_option('-p', '--parameters', action='store', dest='paramNum', type='string',
help=('specify number of parameters (Optional)'))
parser.add_option_group(groupParam)
(options, args) = parser.parse_args()
for groupParam1 in groupParam.option_list:
print getattr(options, groupParam1.dest)
P.S。我是运行Python2.6.6
如果不指定nargs
,则使用1
作为默认值;仅消耗一个位置参数。
指定nargs=2
得到2个值:
groupParam.add_option(
'-p', '--parameters', action='store', dest='paramNum', type='string',
nargs=2, # <---
help=('specify number of parameters (Optional)')
)
How many arguments of type type should be consumed when this option is
seen. If > 1, optparse will store a tuple of values to dest.
因此,应修改最后一个循环以检查 tuple
以根据需要打印:
for groupParam1 in groupParam.option_list:
values = getattr(options, groupParam1.dest)
if isinstance(values, tuple):
for value in values:
print(value)
我正在尝试循环访问某组参数(仅限“-p”)。
我在终端中声明它们如下:python program.py -p paramOne paramTwo
。我的程序输出只有 paramOne
,我不明白为什么。我的目标是获得以下输出:
paramOne
paramTwo
谁能告诉我我的代码哪里出错了?
代码如下:
# Parcing definitions
parser = optparse.OptionParser()
groupParam = optparse.OptionGroup(parser, 'Output handling')
parser.add_option('-q', '--quiet', action='store_false', dest='verbose', default=True,
help=('don\'t print status messages to stdout'))
groupParam.add_option('-p', '--parameters', action='store', dest='paramNum', type='string',
help=('specify number of parameters (Optional)'))
parser.add_option_group(groupParam)
(options, args) = parser.parse_args()
for groupParam1 in groupParam.option_list:
print getattr(options, groupParam1.dest)
P.S。我是运行Python2.6.6
如果不指定nargs
,则使用1
作为默认值;仅消耗一个位置参数。
指定nargs=2
得到2个值:
groupParam.add_option(
'-p', '--parameters', action='store', dest='paramNum', type='string',
nargs=2, # <---
help=('specify number of parameters (Optional)')
)
How many arguments of type type should be consumed when this option is seen. If > 1, optparse will store a tuple of values to dest.
因此,应修改最后一个循环以检查 tuple
以根据需要打印:
for groupParam1 in groupParam.option_list:
values = getattr(options, groupParam1.dest)
if isinstance(values, tuple):
for value in values:
print(value)