获取文本文件中整数的平均值(使用Python)

获取文本文件中整数的平均值(使用Python),python,python-2.7,int,text-files,average,Python,Python 2.7,Int,Text Files,Average,这是我的代码: results = [[usernme, score]] with open("hisEasyR.txt", "a") as hisEasyRFile: writer = csv.writer(hisEasyRFile, delimiter='|') writer.writerows(results) 这是文本文件的外观: mary|4 john|5 ben|3 我想取所有整数并计算平均值。 例如,对于此文件,我希望它输出: The aver

这是我的代码:

results = [[usernme, score]]

with open("hisEasyR.txt", "a") as hisEasyRFile:
        writer = csv.writer(hisEasyRFile, delimiter='|')
        writer.writerows(results)
这是文本文件的外观:

mary|4
john|5
ben|3
我想取所有整数并计算平均值。 例如,对于此文件,我希望它输出:

The average is 4. 
我该怎么做呢?

还有很长的路要走: 逐行阅读,使用|上的字符串拆分。 然后取第二个字符串(即数字),并将其转换为int

参考:

伪:

sum = 0

For line in file:
     mySplit = str.split(line, '|')
     sum += int(mySplit[1])

avg = sum/numLines
分为两行:(假设您已经将整个文件读取到
内容


您可以使用
列表理解

with open("hisEasyR.txt") as hisEasyRFile:
    numbers = [int(line.rstrip('\n').split('|')[-1])
               for line in hisEasyRFile if not line.isspace()]

print "The average is %d." % (sum(numbers) / len(numbers))
# The average is 4.

嗨,对不起,我绝对不是Python方面的专家。我不擅长纠正程序,哈哈。我得到一个错误
print“平均值为%d.”%(sum(ls)/len(ls))name错误:全局名称“ls”未定义
@Programmer12,很抱歉这是一个打字错误。将其更改为
数字
。现在它应该可以工作了。太好了!!谢谢如果我想的话,我该如何将平均值改为浮动呢?我试图将
numbers=[int(line.rstrip('\n').split('\n'))[-1])中的“int”更改为
float
,但没有任何影响:)更改
int(line.rstrip('\n').split('\n'))[-1])
float(line.rstrip('\n').split[-1])
。在
print
语句中,将
%d
更改为
%f
。我对Python非常陌生。哈哈。你能给我一个如何将文件读取为内容的示例吗?简言之:
打开('Path/to/file','r')作为文件:content=file.read()
在这里看一看:谢谢!我得到了错误
索引器:列表索引超出范围
new\u list=[int(I.split(“|”)[1])for I in content.split(“\n”)]索引器:列表索引超出范围
您的输入是什么?我想问题在于空行。我更新了答案
with open("hisEasyR.txt") as hisEasyRFile:
    numbers = [int(line.rstrip('\n').split('|')[-1])
               for line in hisEasyRFile if not line.isspace()]

print "The average is %d." % (sum(numbers) / len(numbers))
# The average is 4.