Python没有从文件中读取数据?

2022-05-21 06:40:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我的程序应该是从一个文件的分数,这一切都很好和漂亮的作品阅读。但是,我需要检查这个文件,看看是否有人有名字在其中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

所以里斯有三次,为什么我的程序看不到?我检查了vName是否正确,当我打印vName时,我收到了“Reece”。所以再说一遍。。。为什么我的程序在文件里找不到这个


Tags: 文件方法in程序fordataifcount名字else作品分数continuevnamereece
1条回答
网友
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")