获取文本文件中整数的平均值(使用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.