Python操作分析列表

2024-04-29 04:37:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我在程序中使用了python optparse模块,我很难找到解析包含值列表的选项的简单方法。

例如:

--groups one,two,three. 

我希望能够以列表格式访问这些值,如options.groups[]。是否有optparse选项将逗号分隔的值转换为列表?还是我必须手动操作?


Tags: 模块方法程序列表格式选项手动one
3条回答

S.Lott的答案已经被接受,但这里有一个存档的代码示例:

def foo_callback(option, opt, value, parser):
  setattr(parser.values, option.dest, value.split(','))

parser = OptionParser()
parser.add_option('-f', '--foo',
                  type='string',
                  action='callback',
                  callback=foo_callback)

看看option callbacks。回调函数可以使用基本的optarg.split(',')将值解析为列表

再次,为了归档的完整性,扩展上面的示例:

  • 您仍然可以使用“dest”指定选项名称以供以后访问
  • 在这种情况下不能使用默认值(请参见Triggering callback on default value in optparse中的说明)
  • 如果您想验证输入,OptionValueError应该从foo\u回调中抛出

代码(稍加修改)将是:

def get_comma_separated_args(option, opt, value, parser):
    setattr(parser.values, option.dest, value.split(','))

parser = OptionParser()
parser.add_option('-f', '--foo',
                  type='string',
                  action='callback',
                  callback=get_comma_separated_args,
                  dest = foo_args_list)

相关问题 更多 >