我有下面的python脚本,它检查ping是否成功,如果在100秒内成功,它将返回True。如果ping失败,它应该返回False,但不返回False,当ping成功时,它返回True。
有人能修复下面代码为什么它不返回False吗?
代码:
def ping(self,hostname):
time_check = datetime.now()
data = ""
while not "Success" in data:
time.sleep(1)
data = self.pingCheck("ping 10.10.10.1 count 5")
if (datetime.now()-time_check).seconds > 100:
return False
return True发布于 2018-09-21 19:27:04
下面的代码将为您工作:
import time
def ping(self, hostname, try_for=100):
t_end = time.time() + try_for
is_succeed = False
while time.time() < t_end or is_succeed:
time.sleep(1)
data = self.pingCheck("ping 10.10.10.1 count 5")
is_succeed = "Success" in data
return is_succeed我已经将等待时间定义为名为try_for的参数,其默认值设置为100,但您可以传递等待主机可用性所需的任何其他秒数。
https://stackoverflow.com/questions/52442723
复制相似问题