Python不从文件中读取数据?

时间:2016-01-26 10:34:27

标签: python file loops enumerate

我的程序假设是从一个分数文件中读取,这些分数可以很好地运作。但是,我需要检查此文件,以查看是否有人在其中有3次或更多次的名称。我检查这个的方法是:

    with open(fileName,"a+") as f:
    i = 0
    for i, l in enumerate(f, 1):
        pass

    count = 0
    for find in range(i):
        data = f.readline()
        if vName in data:
            count+=1
            if count ==3:
                print("You have already played 3 times!")
                return 0
            else:
                continue
        else:
            continue

枚举计算文件中的行数。然后我用行数创建一个循环并逐行读取数据。然后我检查名称是否在该数据中。我检查的文件的一小部分样本:

Reece 7
Reece 3
Reece 2
John 1

所以Reece有3次,为什么我的程序没有看到?我检查了vName是否正确,当我打印vName时,我收到" Reece"。再说一遍......为什么我的程序没有在文件中找到它。

1 个答案:

答案 0 :(得分:1)

看起来你的第一个循环读取整个文件,所以当你运行第二个循环时,文件已经结束了。可以做f.seek(0)重新开始。或者,以下内容仅通过文件一次:

#!/usr/bin/env python
def check(filename, vName):
    with open(filename, 'r') as f:
        count = 0
        for data in f:
            if vName in data:
                count += 1
                if count == 3:
                    print("You have already played 3 times!")
                    return 0

check("a.txt", "Reece")
相关问题