python一个小小的笔记,对于初学者的我来说,琢磨这道题花了一些时间。具体的问题和注意事项和实现方式都在下面的代码中,若不清楚可以留言!!!
题目:写一个程序,让用户输入文件名,然后读取文件,按行的形式j进行查看。遇到以“X-DSPAM-Confidence:”开头的行,提取该行中的浮点数。统计行数,文件读取结束后,打印垃圾邮件平均值。
#.readline() 和 .readlines() 之间的差异是后者一次读取整个文件,返回的是一个数组 #Question:编写一个程序,让用户输入文件名,然后读取文件,按行的形式j进行查看。 #遇到以“X-DSPAM-Confidence:”开头的行,提取该行中的浮点数。统计行数,文件读取结束后,打印垃圾邮件平均值。 fname=raw_input('Enter file Name:') fhand=open(fname) book=fhand.readlines() count=0 dateSum=0 for index in range(1,len(book)): if book[index].find('X-DSPAM-Confidence:')!=-1: #返回值=-1表示没找到相应的字段 x=book[index].find(':') #不能直接find(X-DSPAM-Confidence:)如果直接find这个字段,若首行是X-DSPAM-Confidence:那么返回的索引值便是0 y=book[index] date=float(y[x+2:])
dateSum=date+dateSum count=count+1 #print(date) #此处输出的是每个具体的浮点数 print ('以“X-DSPAM-Confidence:”开头的总行数为'+str(count)+'行,总浮点数数值相加为'+str(dateSum)+'其平均数为'+str(dateSum/count))
结果图: