我正在运行curl命令来检查网站的状态:
try:
connectionTest = subprocess.Popen([r"curl --interface xx.xx.xx.xx http://www.yahoo.com"], shell=True, stderr=subprocess.PIPE, stdout=subprocess.PIPE)
cstdout,cstderr = connectionTest.communicate()
if cstdout:
#print cstdout
status = "OK"
elif cstderr:
#print cstderr
status = "PROBLEM"
except:
e = sys.exc_info()[1]
print "Error: %s" % e
除了try:except语句由于没有正确捕捉异常,下面是接口关闭时脚本的输出,现在我想捕捉except语句中的第一行。。。相反,它正在繁殖…这可能吗??在
^{pr2}$
没有抛出异常。 您可以检查返回代码,并在不为零时引发异常:
如果子进程中发生任何异常,则不会引发异常。 检查stderr并引发适当的异常
你确定你需要叫柯尔吗?在
其次,听起来你的接口地址不可靠,而不是你的代码。检查
interface
标志参数的正确性(即:在python之外运行curl命令,并检查它是否按预期工作。)一般来说,您永远无法捕获python程序中的子进程错误(我想这正是您所要求的)。您将不得不依赖于退出代码和stdout/err输出,这就是为什么依赖Python的included batteries的解决方案会更加健壮。在
如果需要手动指定接口,则可以使用其他几个选项:
PyCurl:
相关问题 更多 >
编程相关推荐