从 python 中的 ping 命令输出中提取平均时间
Extract Average time from output of ping command in python
如何从 python 中的 ping 命令输出中提取平均时间。这是 ping 的输出:
rtt min/avg/max/mdev = 31.907/37.303/51.442/8.194 ms
好吧,如果每次输出都相同,您可以做一些事情。您可以通过执行以下操作删除第一位信息 "rtt min/avg/max/mdev = "。
>>> yourString[23:]
其中 23 是您要在前面截去的字符数。
然后对最后的ms做同样的事情
>>> yourString[:-3]
其中 3 是您要删除的号码。
最后你可以 运行 对对象进行分解以获得平均值,用“/”分割
>>>youString.split('/')
然后你可以在你的字符串中获取第二个值,你将得到你的平均值。
Calvin 关于使用 split
的建议可能最适合这种情况。但对于一般情况,熟悉正则表达式和 python 实现,re 模块 - https://docs.python.org/3.4/library/re.html。使用它们,您可以编写一个规则来匹配您要提取的行的确切部分。我将把编写模式作为练习留给您,但完成后您可以实现以下目标:
>>> re.findall(pattern, "rtt min/avg/max/mdev = 31.907/37.303/51.442/8.194 ms")
['37.303']
如何从 python 中的 ping 命令输出中提取平均时间。这是 ping 的输出:
rtt min/avg/max/mdev = 31.907/37.303/51.442/8.194 ms
好吧,如果每次输出都相同,您可以做一些事情。您可以通过执行以下操作删除第一位信息 "rtt min/avg/max/mdev = "。
>>> yourString[23:]
其中 23 是您要在前面截去的字符数。
然后对最后的ms做同样的事情
>>> yourString[:-3]
其中 3 是您要删除的号码。
最后你可以 运行 对对象进行分解以获得平均值,用“/”分割
>>>youString.split('/')
然后你可以在你的字符串中获取第二个值,你将得到你的平均值。
Calvin 关于使用 split
的建议可能最适合这种情况。但对于一般情况,熟悉正则表达式和 python 实现,re 模块 - https://docs.python.org/3.4/library/re.html。使用它们,您可以编写一个规则来匹配您要提取的行的确切部分。我将把编写模式作为练习留给您,但完成后您可以实现以下目标:
>>> re.findall(pattern, "rtt min/avg/max/mdev = 31.907/37.303/51.442/8.194 ms")
['37.303']