Сохранить выходной питон в строковой переменной - PullRequest
0 голосов
/ 15 января 2019

Я хочу сохранить мой вывод в строковой переменной. Моей главной целью было проверить, работают ли разные IP-адреса. Однако существует проблема для одного IP-адреса. Действительно, IP-адрес не работает, но код говорит, что он работает. я пинг с cmd, и это показывает мне: не удается достичь хоста назначения и сказать 0% потерь.

Итак, я хочу определить, существует ли мир, который не может выполнить дополнительное условие.

Я пробовал другую библиотеку, но никогда не работал.

hostname = "192.168.1.2"
somevar = str(os.system("ping " + hostname))
print(somevar)

Выход равен 0. И я хочу, чтобы результат был: отправить запрос пинга ...

1 Ответ

0 голосов
/ 15 января 2019

Ну, os.system не даст вам желаемого результата.Он возвращает только код завершения команды ping (или любой другой команды).

Если вы хотите получить текстовый вывод, который будет виден на консоли, попробуйте модуль подпроцесс .

import subprocess
import sys

hostname = "192.168.1.2"
cmd = subprocess.Popen(["ping", hostname], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)

# run command and save output and error msg
stdout, stderr = cmd.communicate()

# stderr is None -> everything is fine
if stderr == None:
    print(stdout)
else:
    print(stderr)
    sys.exit(1)

Это, конечно, не совсем то, что вы хотите, но это может дать вам представление о том, как вы можете решить свою проблему.

...