使用 Python 解析 ping 输出

2023-12-29

您将如何解析“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 https://github.com/gg/pingparser,但是如果您希望出于教学目的实现它,请使用 pyparsing 库。它比正则表达式解析数据要好得多。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Python 解析 ping 输出 的相关文章

  • LibreOffice 并行将 .docx 转换为 .pdf 效果不佳

    我有很多 docx 文件需要转换为 pdf 将它们一一转换需要很长时间 所以我编写了一个 python 脚本来并行转换它们 from subprocess import Popen import time import os os chdi
  • 为什么我的混淆矩阵只返回一个数字?

    我正在做二元分类 每当我的预测等于事实时 我发现sklearn metrics confusion matrix返回单个值 难道没有问题吗 from sklearn metrics import confusion matrix print
  • 如何使用 python 的 http.client 准确读取一个响应块?

    Using http client在 Python 3 3 或任何其他内置 python HTTP 客户端库 中 如何一次读取一个分块 HTTP 响应一个 HTTP 块 我正在扩展现有的测试装置 使用 python 编写 http clie
  • 如何为未捕获的异常处理程序编写单元测试

    我有一个函数可以捕获uncaught例外情况 如下 有没有办法编写一个单元测试来执行uncaught exception handler 功能正常 但测试正常退出 import logging def config logger logge
  • 如何在python中附加两个字节?

    说你有b x04 and b x00 你如何将它们组合起来b x0400 使用Python 3 gt gt gt a b x04 gt gt gt b b x00 gt gt gt a b b x04 x00
  • 从 pyspark.sql 中的列表创建数据框

    我完全陷入了有线的境地 现在我有一个清单li li example data map lambda x get labeled prediction w x collect print li type li 输出就像 0 0 59 0 0
  • OpenCV 跟踪器:模型未在函数 init 中初始化

    在视频的第一帧 我运行一个对象检测器 它返回对象的边界框 如下所示
  • 在Python中读取tiff标签

    我正在尝试用 Python 读取 tiff 文件的标签 该文件是 RGB 的uint16每个通道的值 我目前正在使用tifffile import tifffile img tifffile imread file tif 然而 img是一
  • 仅当某些值相等时,如何才能将一个文本文件中的值替换为另一个文本文件中的其他值?

    我有一个名为finalscores txt我想创建一个 python 脚本 它将打开它并从两个单独的列中读取值 这是我的finalscores txt file Atom nVa predppm avgppm stdev delta QPr
  • 在 Mac OS X 上安装 libxml2 时出现问题

    我正在尝试在我的 Mac 操作系统 10 6 4 上安装 libxml2 我实际上正在尝试在 Python 中运行 Scrapy 脚本 这需要我安装 Twisted Zope 现在还需要安装 libxml2 我已经下载了最新版本 2 7 7
  • 使用标签或 href 传递 Django 数据

    我有一个包含链接的表 当单击该链接进行更多操作时 我想将一些数据传递给我的函数 my html table tbody for query in queries tr td value a href internal my func que
  • NumPy 相当于 Keras 函数 utils.to_categorical

    我有一个使用 Keras 进行机器学习的 Python 脚本 我正在构建 X 和 Y 它们分别是特征和标签 标签的构建方式如下 def main depth 10 nclass 101 skip True output True video
  • App Engine 实体到字典

    将 google app engine 实体 在 python 中 复制到字典对象的好方法是什么 我正在使用 db Expando 对象 所有属性均为扩展属性 Thanks 有一个名为foo尝试 foo dict
  • Flask 应用程序路由中的多个参数

    烧瓶怎么写app route如果我在 URL 调用中有多个参数 这是我从 AJax 调用的 URL http 0 0 0 0 8888 createcm summary VVV change Feauure 我试图写我的烧瓶app rout
  • 为正则表达式编写解析器

    即使经过多年的编程 我很羞愧地说我从未真正完全掌握正则表达式 一般来说 当问题需要正则表达式时 我通常可以 在一堆引用语法之后 想出一个合适的正则表达式 但我发现自己越来越频繁地使用这种技术 所以 自学并理解正则表达式properly 我决
  • 高效创建抗锯齿圆形蒙版

    我正在尝试创建抗锯齿 加权而不是布尔 圆形掩模 以制作用于卷积的圆形内核 radius 3 no of pixels to be 1 on either side of the center pixel shall be decimal a
  • 将时间添加到日期时间

    我有一个像这样的日期字符串 然后使用strptime 所以就像这样 my time datetime datetime strptime 07 05 15 m d Y 现在我想添加 23 小时 59 分钟my time 我努力了 timed
  • django jet 中的自定义徽标

    我目前正在尝试对 django 管理面板的皮肤进行一些定制 以使其更符合我们的品牌 目前我们使用 django jet 来美化管理面板 django jet 可以自定义 css html 吗 所有评论都说我应该更改一些 html 文件 但我
  • 如何在 scikit 中加载 CSV 数据并将其用于朴素贝叶斯分类

    尝试加载自定义数据以在 Scikit 中执行 NB 分类 需要帮助将示例数据加载到 Scikit 中 然后执行 NB 如何加载目标的分类值 使用相同的数据进行训练和测试 或使用完整的数据集进行测试 Sl No Member ID Membe
  • 使用 paramiko 运行 Sudo 命令

    我正在尝试执行sudo使用 python paramiko 在远程计算机上运行命令 我尝试了这段代码 import paramiko ssh paramiko SSHClient ssh set missing host key polic

随机推荐

  • 如何定义向量结束以便它不会无休止地继续下去?

    目前我有一个文本文件 其中包含与不同音乐剧艺术家有关的信息 David Byrne 1 Talking Heads Lead Vocals Chris Frantz 1 Talking Heads Drummer Tina Weymouth
  • 大多数现代系统中堆栈增长的方向是什么?

    我正在准备一些 C 语言培训材料 我希望我的示例适合典型的堆栈模型 Linux Windows Mac OSX PPC 和 x86 Solaris 和最新的 Unix 中的 C 堆栈朝什么方向发展 堆栈增长通常并不取决于操作系统本身 而是取
  • 全局执行上下文是否可以从执行堆栈中弹出?

    当JS代码开始运行时 全局执行上下文被创建并位于执行堆栈的底部 以 容纳 全局变量对象和 this 如果整个JS代码运行完后执行栈为空 并且没有全局执行上下文 我们如何仍然能够访问全局变量 例如 我正在运行一个带有 JS 代码的 html
  • 一个类可以扩展一个类并实现一个接口吗

    PHP 中的一个类可以同时扩展一个接口和另一个类吗 基本上我想这样做 interface databaseInterface public function query q public function escape s more met
  • 将 log4j 1.x 和 log4j 2 与依赖于 log4j 1.x 的第三方库混合

    我正在维护一个使用 log4j 1 x 和大型代码库的 Maven 项目 log4j 1 x不仅在现有代码中使用 项目所依赖的一些第三方库也使用它 我现在想开始使用 log4j 2 但我想知道是否值得这么麻烦 我知道可以将两者混合使用 参见
  • 在WPF中,我可以在2个按钮之间共享相同的图像资源吗

    我想在 WPF 中创建一个开 关按钮 并且希望它在用户单击它时使用图像更改其外观 如果它是打开的 则切换为关闭 如果它是关闭的 则切换为打开 我将要使用的图像添加到资源中
  • 无法获取店铺名称

    在以前的版本中我用来获取当前商店名称是这样的 router get api app async ctx gt let shop ctx session shop 但是 在新版本中 我无法使用 ctx session shop 获取当前商店名
  • 将实体框架与历史数据结合使用

    我正在 Net 4 0 中构建一个 Windows 应用程序来创建和组织电子项目 该应用程序的主要目的是记录电子元件的供应商信息 零件号 描述 价格等 并将它们组织 关联 到项目 成品 中 要求之一是跟踪任何给定供应商项目 主要是价格 的更
  • Discord“on_member_join”功能不起作用

    我的 on member join 似乎不起作用 我希望我的机器人说出加入服务器的成员的姓名 但它无法检测是否有人加入或离开 import discord from discord ext import commands client co
  • SQL 从“自定义”post_type 中获取 X 个最后条目,计算用户自定义 post_type 的个数

    如果可能的话 我想进入一个查询 最后 4 个不同的用户 排除 ID 1 与 post type custom 订购date or ID DESC 计算每个用户的 自定义 post type 总数 数数 这是一个数据示例 Table Name
  • srand 函数返回相同的值

    嘿伙计们看看这个程序 The craps game KN king page 218 include
  • sysconf(_SC_CLK_TCK) 与 CLOCKS_PER_SEC

    我想知道上述常量的返回值有什么区别 sysconf SC CLK TCK 回报100 CLOCKS PER SEC回报1 000 000 所以 假设我有这个 start clock Process starts here does some
  • 向 RSpec 的默认失败消息添加更多信息?

    我在验证中测试了很多错误的字符串 如下所示 0 3 a xx 11 1 3 00 h h2 h2h m m10 m10m 2hm h2m hm2 2m10h 2m10m 2h10h each do input FactoryGirl bui
  • 测试 celery 任务是否仍在处理中

    如何测试任务 task id 是否仍在处理中celery http celeryproject org 我有以下场景 在 Django 视图中启动任务 将 BaseAsyncResult 存储在会话中 关闭 celery 守护进程 硬 以便
  • 在替换之前对正则表达式中捕获的数字进行计算

    使用正则表达式 我可以找到一堆我想要替换的数字 但是 我想将该数字替换为使用原始捕获数字计算得出的另一个数字 在记事本 中使用替换部分中的一种表达式可能吗 Edit 也许是一个奇怪的想法 但是计算可以在搜索部分完成 生成第二个捕获的数字 该
  • 防止子视图在 UIScrollView 中滚动

    我有一个UIScrollView我想阻止具有某个子视图的子类滚动 而所有其他子视图正常滚动 我能想到的最接近的例子是UITableView右侧的 索引条 在 通讯录 应用程序中查看示例 我猜这是表的子视图 滚动视图 但它不会随着用户滚动而移
  • 如何使用sql server获取一周中的上一个工作日与当前工作日

    我有一个在工作日 周一至周五 运行的 ssis 套餐 如果我在星期二收到文件 后台 DB 它需要前一个工作日的日期并进行一些交易 如果我在周五运行该作业 它必须获取周一的日期并处理交易 我使用以下查询来获取之前的营业日期 Select Co
  • 错误:任务“:app:packageDebug”执行失败。 > !zip.isFile()

    UPDATE 非常感谢 现在至少没有错误了 但它与以前的工作方式 它应该如何工作 仍然相去甚远 现在 数据库看起来 很奇怪 我认为这个 gradle 还是有问题 It should not look like According to th
  • 浏览器不会读取更新的 CSS

    编辑 我真诚的道歉 除了我自己之外 这不是任何问题 我有一个 global css 文件 其中包含正确的内容 但在该文件下面 我包含了另一个包含旧 CSS 的文件 在我的 HTML 的一些内容 捂脸 我有一个正在开发的网站 我正在使用 LE
  • 使用 Python 解析 ping 输出

    您将如何解析 ping 输出 如下所示 root m2m probe1 M2M src ping c 20 q google es PING google es 173 194 34 247 56 84 bytes of data goog