首页 > 解决方案 > Python 3 将 ping 设置为变量返回 0

问题描述

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 它会将其设置为零?其他印刷品只是为了看看它是如何通过的

标签: pythonlinuxpython-3.x

解决方案


os.system0如果没有错误,将返回进程的值。您需要使用从您的命令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"])

推荐阅读