我在我的程序中使用了python optparse模块,但是我很难找到一种简单的方法来解析包含值列表的选项。
例如:
--groups one,two,three. 我希望能够以options.groups[]的列表格式访问这些值。是否有optparse选项可以将逗号分隔值转换为列表?或者我必须手动完成此操作?
发布于 2008-12-24 19:03:52
看看option callbacks吧。您的回调函数可以使用基本的optarg.split(',')将值解析为列表
发布于 2008-12-24 21:50:35
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)发布于 2015-03-27 20:53:43
同样,为了归档的完整性,扩展上面的示例:
”来指定以后访问的选项名称。在这种情况下,不能使用默认值(请参阅
抛出OptionValueError
代码(经过微小的修改)将是:
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)https://stackoverflow.com/questions/392041
复制相似问题