Я использую подпроцесс для проверки связи с сервером, но хочу получить полный ответ. Раньше я использовал os
для проверки связи, но это возвращало только 1
или 0
.
Код, который я использую:
import subprocess
p = subprocess.Popen(['ping', '8.8.8.8'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = p.communicate()
print out
Я бы хотел, чтобы был виден ответ, который я бы увидел, если бы запустил его с терминала. Обратите внимание, что я использую -c
, а не -n
, потому что я использую Linux в качестве ОС.
Я не понимаю, почему это не работает, потому что, когда я запустил аналогичный код, он распечатал ожидаемый ответ:
import subprocess
p = subprocess.Popen(['ls', '-a'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = p.communicate()
print out
Приведенный выше код распечатал список файлов и папок в каталоге, в котором был сохранен скрипт python, поэтому код, который я использую, кажется правильным.
Мой вопрос в том, как я могу получить ответ от проверки связи с сервером, назначенным переменной, которую я затем могу распечатать, как я могу, когда я запускаю ls
.