Python - 获取txt文件中n行的平均值

时间:2016-07-20 20:50:01

标签: python file text numbers average

我已经在网上试图解决这个问题并使用其他帖子的解决方案来构建我的解决方案,但是从这里开始,我不知道下一步该做什么。

我基本上想要获取PastWinners文本文件的最后5行,然后获得这些数字的平均值。我目前拥有的是整个文档的平均值,并打印出文本文件中的最后一行。

with open('PastWinners.txt') as f:
    data = [float(line.rstrip()) for line in f]

    first = f.readline()      # Read the first line.
    f.seek(-2, 2)             # Jump to the second last byte.
    while f.read(1) != b"\n": # Until EOL is found...
        f.seek(-2, 1)         # ...jump back the read byte plus one more.
    last = f.readline()       # Read last line.

biggest = min(data)
smallest = max(data)
print(sum(data)/len(data))
print(last)

感谢您的帮助。

3 个答案:

答案 0 :(得分:3)

您可以使用slicing仅获取最后5个数字(我删除了所有不相关的代码):

<?php base_URL('Traget') ?>

with open('PastWinners.txt') as f: data = [float(line.rstrip()) for line in f] print(sum(data[-5:])/len(data[-5:])) 表示只接受最后一项之前5-1到最后一项的数据。

答案 1 :(得分:1)

您可以按相反的顺序读取文件,并在5次读取后使用 break 从循环中退出。您也可以在从文件末尾开始运行循环的5次迭代,因此您根本不必使用 break

Here是如何在Python中反向阅读。

答案 2 :(得分:0)

当文件少于5行时,这将起作用,并将平均值格式化为2位小数。

rules: {
    app-name-form: "required"
}