Skip to main content
 首页 » 编程设计

Python while 等待 100 秒并返回 True 或 False

2025年05月04日11jackei

我在下面有 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 

请您参考如下方法:

下面的代码将为您工作:

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,但您可以传递您希望等待的任何其他秒数主机可用性。