gpt4 book ai didi

python - 使用 Python 解析 ping 输出

转载 作者:太空宇宙 更新时间:2023-11-03 15:19:29 24 4
gpt4 key购买 nike

你将如何解析“ping”输出,如下所示:

root@m2m-probe1:~/M2M/src# ping -c 20 -q google.es
PING google.es (173.194.34.247) 56(84) bytes of data.

--- google.es ping statistics ---
20 packets transmitted, 20 received, 0% packet loss, time 19043ms
rtt min/avg/max/mdev = 314.766/381.299/430.826/36.513 ms

用 Python?到目前为止我发现的更好的是:

output = subprocess.check_output('ping ' + host + " -c 5 -q  | egrep \"packet loss|rtt\"", shell=True)

match = re.search('([\d]*\.[\d]*)/([\d]*\.[\d]*)/([\d]*\.[\d]*)/([\d]*\.[\d]*)', output)

ping_min = match.group(1)
ping_avg = match.group(2)
ping_max = match.group(3)

match = re.search('(\d*)% packet loss', output)
pkt_loss = match.group(1)

它有效,但我知道这远不是实现它的最佳方式。有什么建议吗?

提前致谢!

最佳答案

已经有一个纯 Python 模块可以做到这一点 https://github.com/gg/pingparser ,但是,如果您希望出于教学目的实现它,请使用 pyparsing 库。它比解析数据的正则表达式要好得多。

关于python - 使用 Python 解析 ping 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17407912/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com