到目前为止,我通过Optparse将多个参数作为字符串处理, 例如:
--update_entities="host_group hostname entity_type entities2monitor"
其中entities2monitor有变量参数,通过在回调函数中获取它们(注意[3:]
)
但是,当我需要将以下表单的参数传入回调时,我应该如何处理它呢? (我可以控制将生成Optparse输入字符串的SQL)
操作名称:空格分隔的字符串。(例如:'TEST ACTION'
)
主机组:字符串
行动持有人:一份清单,包括:
以及
示例:
--create_action='''TEST ACTION | client_service_platform | "CONDITION_TYPE_TRIGGER_NAME CONDITION_OPERATOR_LIKE Weighted Successful" "CONDITION_TYPE_HOST CONDITION_OPERATOR_EQUAL host01" | "OPERATION_TYPE_MESSAGE userid1" "OPERATION_TYPE_EMAIL userid1" "OPERATION_TYPE_EMAIL userid2"'''
这就是我目前所掌握的
actions_splits = actions_parameters.split(" | ")
action_name = actions_splits[0]
hostgroup = actions_splits[1]
actions_holder = actions_splits[2].strip('"').split('" "')
operations_holder = actions_splits[3].strip('"').split('" "')
哪种方法有效,但是有没有更无缝的方法来获取这些参数?在
在这里使用namedtuple怎么样:
使用
^{pr2}$;
和,
区分命令组件:现在实例化为:
允许您拨打:
最后两个元素可以用
.split()
再次拆分我不确定这是否是您想要的,但是在我看来,您可以使用argparse并使用
nargs
参数来指定应该使用多少个参数。在你可能已经知道了,但是这里有个链接:http://docs.python.org/dev/library/argparse.html#nargs
使用
nargs=+
或nargs=*
将把你的参数放在一个列表中。以你的例子,我认为你可以将你的程序称为:相关问题 更多 >
编程相关推荐