【发布时间】:2019-01-04 08:13:17
【问题描述】:
通过这段代码,我使用 trapper 向 zabbix 发送数据:
def zabbix_sender(key, output):
server = "1.2.2.4"
hostname = "host"
cmd = "zabbix_sender -z " + server + " -s " + hostname + " -k " + key +\
" -o \"" + output +"\""
print os.system(cmd)
它输出到屏幕
info from server: "processed: 1; failed: 0; total: 1; seconds spent: 0.000041"
sent: 1; skipped: 0; total: 1
我需要将上面的输出输出到变量,所以如果failed: 1 我可以创建错误处理。
目前我在调用此函数时得到 0 作为输出:
r = zabbix_sender (key,"failed")
print r
输出:0
尝试使用子流程:
r=subprocess.check_output(zabbix_sender (key,"failed"),shell=False)
print r
TypeError:None 对象不可迭代
【问题讨论】:
-
你显然需要
subprocess.check_output而不是os.system,而不是os.system的输出。 -
精确错误信息的重要性怎么强调都不过分。拼写是“可迭代的”,问题肯定是
None不是可迭代的。
标签: python python-2.7 zabbix