Python 3 установка ping для переменной возвращает 0 - PullRequest
0 голосов
/ 24 мая 2018
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

Ошибка сети: нет соединения с назначением

Почему при пинге он устанавливает его в ноль при попыткесделать что-нибудь с этим ??Другие отпечатки просто для того, чтобы увидеть, как он проходит через

1 Ответ

0 голосов
/ 24 мая 2018

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"])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...