Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何平均文件中的整数列表?_Python_Python 3.x - Fatal编程技术网

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

Python 如何平均文件中的整数列表?,python,python-3.x,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: pr

我在我的程序中包含的文件是一个数字列表。我必须将该文件转换为整数才能显示平均值

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()
一些想法:

我会给你一个很好的答案。当您迭代文件时,它将依次生成每一行。是一个构造函数也是一个类型-您可以向它传递一个字符串,如果该字符串可以转换为
int
,它将返回一个整数值

最后,您可能想看看内置函数,它可以获取一个iterable数字并返回这些数字的总和

一个示例实现:

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()
这应该起作用:

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
支持每行有多个数字的文件(这就是为什么它有点复杂)。

文件*有数字列表,所以每行有一个数字?一行有很多数字?很多行都有多个数字?
def compute_average(path):
    with open(path) as fp:
        values = map(int, fp.read().split())
    return sum(values) / len(values)