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)