2016-10-28 18 views
-2

这应该返回文件中所有值的平均值。这是我的。我收到一个错误,有人能帮我吗?谢谢!如何从Python中的文件返回平均值?

def averageValueOnFile(fileName): 
     with open('fileName.txt') as f: 
      sum=0 
      count=0 
      for line in f: 
       count+=1 
       sum+=float(line.split(":")[1]) 
      average=sum/count 
     print (average) 

    IndexError: list index out of range 
+2

什么是输入文件的样子? –

+0

和python没有给你一个完整的堆栈框架,包括错误的行?真奇怪。它通常会。 – tdelaney

+0

考虑一个末尾有空行的文件....'line.split(“:”)'不会给你两个项目。您可能希望在分割之前检查空行。 – tdelaney

回答

2

该文件的内容是什么样的?

一个或多个文件中的行没有一个:或者是干脆空白冒号之后

sum+=float(line.split(":")[0])工作呢?

+0

它做到了,谢谢你! – hawkstudent

0

您的错误可能来自文件中的一行未按预期格式化:split方法返回的列表少于两个元素。