Вот мой простой пример:Как поймать ошибку ping с Python?
import subprocess
cmd = 'ping something.local -c 1'
tail = 'tail -n 3'
ping = subprocess.Popen(cmd.split(' '), stdout=subprocess.PIPE)
tail = subprocess.Popen(tail.split(' '), stdin=ping.stdout, stdout=subprocess.PIPE)
ping.stdout.close()
out, err = tail.communicate()
print 'Print values:'
print out
print err
А вот выход пример сценария:
[~/python]$ python ping_stats.py
ping: cannot resolve tpeo.local: Unknown host
Print values:
None
Итак, мои переменные out
и err
являются «пустыми», но мне нужно сообщение с ping: cannot resolve tpeo.local: Unknown host
об ошибке , Как я могу это получить?
Используйте os.system вместо Popen. А затем проверьте код ответа –
Итак, невозможно ли это сделать с подпроцессом.Popen? –