迄今爲止我通過Optparse處理多個參數作爲一個字符串完美地處理序列, 如:蟒蛇 - 多個參數
--update_entities="host_group hostname entity_type entities2monitor"
其中entities2monitor具有可變參數,通過抓住他們的回調函數內(注意[3:]
),
host = value.split()
(host_group, hostname, entity_type, entities2monitor) = (host[0], host[1], host[2], host[3:])
但是我應該如何處理它,當我需要以下形式的參數送入回調? (I具有對SQL控制,這將產生Optparse輸入字符串)
ACTION_NAME:的空間分隔的字符串。 (例如:
'TEST ACTION'
)主機組:字符串
actions_holder:由包括列表:
- condition_type(字符串)
- condition_operator(字符串)
- condition_filter(空格分隔字符串)
和
- operations_holder:由包括列表:
- operation_type:(字符串)
- operation_sendto:(字符串)
例:
--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('" "')
其作品的那種,但有更完美的方式來獲得這些參數?
真正歡迎發現。將很好地適合代碼。剛讀完文檔,主要是因爲我被迫使用Python2.4,因此我將使用這個配方http://code.activestate.com/recipes/500261-named-tuples/作爲namedtuple實現。 –
+1提到如何使此解決方案向後兼容! Valeu! – Remi
呵呵。我是這個接近給你+1瞭解巴西葡萄牙語:) –