我在程序中加入的文件中填充了一个数字列表。我必须将该文件转换为整数以显示平均值。
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()
答案 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)