如何检测输出是什么以及从中做出声明?

时间:2014-04-12 01:36:47

标签: python if-statement cmd os.system

基本上我用Python编写一个脚本来检查我服务器的状态。我需要它来ping五个不同的IP,然后检测输出是什么。然后,我将需要一个if语句,例如:

import.os
Server1 = os.system('ping 123.123.123.123')
if Server1 == 'Request timed out':
     print('Server 1 is down.')
else:
     print('Server 1 is up.')

我不确定如何解决这个问题。让我知道。

感谢。

1 个答案:

答案 0 :(得分:0)

你在这里发布了大X / Y.你想要做X.你不知道如何做X.你认为Y是做X的最佳方式,并且询问Y.如果你想了解X,请参阅Ivc's comment。< / p>

我要回答Y但是让你知道Y不是最好的方法。

import subprocess
import locale

encoding = locale.getdefaultlocale()[1]
proc = subprocess.Popen(["ping", "123.123.123.123"], stdout=subprocess.PIPE)
out = proc.communicate()[0]
if 'Request timed out' in out.decode(encoding):
    print 'the host is down'
else: 
    print 'the host is up'

然后,您需要确定主机关闭时以及主机启动时的确切操作。