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()
将其设置为 float
[root@web python3]# python3 testNet.py
8.113
0.0
网络错误:未连接到目的地
添加了另一个 url 并将其设置为 int
[root@web python3]# python3 testNet.py
44.992
0
11.377
0
网络错误:未连接到目的地
为什么当你尝试用它做任何事情时,它会将其设置为零? 其他打印只是为了看看它是如何通过的
最佳答案
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"])
关于Python 3 将 ping 设置为变量返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50507807/