【问题标题】:Python: How to Average Ping Times From FilePython:如何从文件中平均 Ping 时间
【发布时间】:2015-10-07 18:57:14
【问题描述】:

我正在寻找编写两个 python 脚本;一个用于 ping IP,并将 ping 结果存储到文件中,另一个用于从创建的 .txt 文件中提取和平均 ping 时间。 (请注意,我真正需要记录的只是 ping 时间)(如果有帮助,我的平台是 Pi)

下面是我计划用来将 ping 结果存储在文本文件中的代码行(显然,在我的程序中,我已将其置于无限循环中并有延迟,因此它不会过于频繁地 ping)

command = os.system('ping 127.0.0.1 >> pingresults.txt')

我被困在如何访问这个文件,然后把这个文件解析成有用的数据? (请记住我是一个严重的业余爱好者)

我想知道当我最初将数据记录到文件中时,是否可以仅在 ping 时间过滤它。这将使以后对它们进行平均变得容易得多。

如果您对感兴趣的命令、技巧或实现有任何建议,那就太好了!

【问题讨论】:

标签: python logging raspberry-pi average ping


【解决方案1】:

我将在基本步骤中完全使用 Python,忽略 Python“技巧”:

打开文件:

f = open("pingresults.txt", "r")
time_list = []
for line in f:
    # Ping time is in the penultimate field, 5 chars in.
    field_list = line.split(' ')
    ping_time = field_list[-2][5:]
    time_list.append(field_list[-1])   # add last field to end of time_list

print sum(time_list) / float(len(time_list))

【讨论】:

  • 还请注意,您可以使用简单的命令(awk?)轻松进行字段提取,以获取第 7 个字段,去掉前导的“时间=”,并累积计数和运行总和。最后分开。正如@monkey 所说,这是一条线。
  • 我想重新发布您刚刚给出的代码,以及我如何理解它的功能,并注意我不理解的代码行。如果您能确认我的理解并简要解释我不确定的行,我将不胜感激。
  • StackOverflow 不是获取 Python 语法介绍性教程的地方。请在线搜索适合您学习风格的介绍。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-21
  • 2021-05-14
  • 1970-01-01
  • 1970-01-01
  • 2010-10-01
相关资源
最近更新 更多