检查文件中的行是否以特定字符串开头 - 进行一些计算

时间:2015-07-20 21:02:56

标签: python

所以这就是我想要做的事情:

我有一个巨大的文件。我想在python中打开它并查看每一行,如果它匹配某个预定的字符串我想得到紧跟在该字符串之后的数字,将它们全部加起来并得到平均值。

文件如下所示:

`$` Data
`$` Number of hours: 34
`$` DATA
`$` Number of hours: 56
`$` DATA3
`$` MoreDATA
`$` MOREDATA
`$` Number of hours: 9

我想添加34 + 56 + 9,然后获得平均值。

到目前为止,这就是我所拥有的:

#fname = raw_input("Enter file name: ")
fh = open("data.txt")


fhread = fh.readlines()
#fhstrip = fhread.rstrip()
#fhstripz = fhstrip.lstrip()

findz = "Number of hours:"

for line in fhread:
    if line.startswith(findz)
    print line
    #print saved
    #spose = line.find('', atpos)


fh.close()    

print "Done"    

我不知道我是否应该使用.read().readlines() ----当我使用readlines时,我不允许rstriplstrip

请使用"小时数"

帮助查找该行的所有实例

1 个答案:

答案 0 :(得分:4)

将文件视为迭代器,确保只会按实际需要读取行,而不是一次将整个文件缓存在内存中:

#fname = raw_input("Enter file name: ")
with open("data.txt") as fh:
    for line in fh:
        if line.startswith("Number of hours:"):
            print line