如何获取 Python.subprocess 中的丢包值

How can I get the packet loss value in Python.subprocess

我正在尝试从 ping 中获取数据包丢失值 但它给了我 b'Bad value for option -c.\r\n'.

如何获取丢包值?

import subprocess
from subprocess import Popen, PIPE

hostname = "8.8.8.8"
process = subprocess.Popen(['ping','-c','5',hostname],
stdout=PIPE, stderr=PIPE)
stdout, stderr = process.communicate()
print(stdout)

正如 Jordam 和 Shmee 在评论中指出的那样,请相应地进行更改,之后,您需要打印丢包的值,List Comprehension 肯定会有所帮助。 你可以这样做 -

packet_loss = float([x for x in stdout.decode('utf-8').split('\n') if x.find('packet loss') != -1][0].split('%')[0].split(' ')[-1])
print("%s percent" % packet_loss)
#DO SOMETHING