当前位置:  开发笔记 > 编程语言 > 正文

Python Optparse列表

如何解决《PythonOptparse列表》经验,为你挑选了4个好方法。

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

例如:

--groups one,two,three. 

我希望能够以列表格式访问这些值options.groups[].是否有optparse选项将逗号分隔值转换为列表?或者我必须手动执行此操作吗?



1> Can Berk Güd..:

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)



2> S.Lott..:

查看选项回调.您的回调函数可以使用基本函数将值解析为列表optarg.split(',')



3> 小智..:

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

您仍然可以使用"dest"指定选项名称以供以后访问

在这种情况下不能使用默认值(请参阅optparse中默认值的触发回调中的说明)

如果您想验证输入,则应从foo_callback抛出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)



4> Fengya Li..:

使用optparse,要获取列表值,您可以使用操作' append ':

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 - 组一 - 组二 - 组三

['一二三']

推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有