簡體   English   中英

Python等待100秒並返回True或False

[英]Python while wait 100 seconds and return True or False

我下面有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 ,但是您可以傳遞任何其他希望用於等待主機可用性的秒數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM