如何平均文件中的整数列表?

时间:2013-06-07 00:50:40

标签: python python-3.x

我在程序中加入的文件中填充了一个数字列表。我必须将该文件转换为整数以显示平均值。

import os.path

def main():
    try:
        filename = input("name of the file: ")
        print(os.path.abspath(filename))
    except IOError:
        print("File not found")
    except ValueError:
        print("Cannot convert into an integer")

main()

3 个答案:

答案 0 :(得分:0)

一些想法:

open会为您file object iterable。迭代文件时,它将依次产生每一行。 int是构造函数和类型 - 您可以传递一个字符串,如果字符串可以转换为int,它将返回一个整数值。

最后,您可能希望查看内置函数sum,该函数可以使用可迭代的数字并返回这些数字的总和。

示例实现:

from os.path import abspath

def get_file_sums():
    name = input("Please provide a file name:")
    with open(abspath(name), "r", encoding="utf-8") as fo:
        result = sum(int(line, base=10) for line in fo)
        print("The result is:", result)

if __name__ == "__main__":
    get_file_sums()

答案 1 :(得分:0)

这应该有效:

nums = []
with open('nums.txt', 'r') as f:
    for line in f:
        nums.extend([int(x) for x in line.split()])
print sum(nums)/len(nums)

nums.extend支持每行有多个数字的文件(这就是为什么它有点复杂)。

答案 2 :(得分:0)

def compute_average(path):
    with open(path) as fp:
        values = map(int, fp.read().split())
    return sum(values) / len(values)