我正在我的程序中使用python optparse模块,我很难找到一种简单的方法来解析包含值列表的选项.
例如:
--groups one,two,three.
Run Code Online (Sandbox Code Playgroud)
我希望能够以列表格式访问这些值options.groups[].是否有optparse选项将逗号分隔值转换为列表?或者我必须手动执行此操作吗?
Can*_*der 83
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)
Run Code Online (Sandbox Code Playgroud)
its*_* me 11
再次,只是为了存档完整性,扩展上面的示例:
代码(微小的变化)将是:
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)
Run Code Online (Sandbox Code Playgroud)
使用optparse,要获取列表值,您可以使用操作' append ':
Run Code Online (Sandbox Code Playgroud)from optparse import OptionParser parser = OptionParser() parser.add_option("--group", action="append", dest="my_groups") (options, args) = parser.parse_args() print options.my_groups
然后像这样调用你的程序:
$ python demo.py - 组一 - 组二 - 组三
['一二三']
| 归档时间: |
|
| 查看次数: |
22038 次 |
| 最近记录: |