Python 3将ping设置为变量返回0

时间:2018-05-24 11:08:38

标签: python linux python-3.x

import os

host = "www.yahoo.com"
test = os.system("ping -c 10 " + host + " | tail -1| awk '{print $4}' | cut -d '/' -f 2")

print(test)

def check_ping():
    hostname = "www.google.com"

    response = os.system("ping -c 10 " + hostname + " | tail -1| awk '{print $4}' | cut -d '/' -f 2")

    print(int(response))
    if response > 0:
        print("boo")
        print("Network Active. Average response time is: " + str(response))

    else:
        print("Network Error: No connection to destination")
check_ping()

将其设置为浮动

[root @ web python3]#python3 testNet.py

8.113

0.0

网络错误:无法连接目的地

添加了另一个url并将其设置为int

[root @ web python3]#python3 testNet.py

44.992

0

11.377

0

网络错误:无法连接目的地

为什么当你ping它时,当你尝试用它做任何事情时将它设置为零? 其他印刷品只是为了看它是如何通过

1 个答案:

答案 0 :(得分:3)

如果没有错误,

os.system将返回进程的值0。您需要使用subprocess.check_output从命令中获取stdout

import subprocess

output = subprocess.check_output(["ping -c 10 " + "www.google.com" + " | tail -1| awk '{print $4}' | cut -d '/' -f 2"])