【问题标题】:Python 3 setting ping to variable returns 0Python 3 将 ping 设置为变量返回 0
【发布时间】:2018-05-24 11:08:38
【问题描述】:
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 它时它设置为零? 其他的印刷品只是看看它是如何通过的

【问题讨论】:

标签: python linux python-3.x


【解决方案1】:

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"])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-03
    • 2020-08-15
    • 2017-01-25
    • 1970-01-01
    • 2016-05-01
    • 2016-11-25
    • 2022-01-22
    • 2021-01-10
    相关资源
    最近更新 更多