Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python不从文件中读取数据?_Python_File_Loops_Enumerate - Fatal编程技术网

Python不从文件中读取数据?

Python不从文件中读取数据?,python,file,loops,enumerate,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

我的程序应该是从一个成绩文件中读取的,它运行得很好。但是,我需要检查这个文件,看看是否有人在其中有名字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有三次,为什么我的程序没有看到?我检查了vName是否正确,当我打印vName时,我收到了“Reece”。所以再一次。。。为什么我的程序在文件中找不到它。

看起来您的第一个循环读取了整个文件,因此在运行第二个循环时,文件已经结束。可以执行
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")

你的代码中有很多东西毫无意义。你的缩进是非法的。您有一个枚举循环,它只是在传递,没有明显的原因。您有不必要的
continue
语句。当我粘贴代码时,缩进是StackOverflow的问题。在我的程序中没有问题。继续语句不会引起任何问题,所以我要离开them@Reece缩进是你的问题,因为你已经在这里发布了代码,你要求人们阅读它。不管你的程序是否正确,我们只能在你的问题中看到代码。@Reece的人经常在缩进方面有问题,这会导致程序无法按他们的意愿运行。确定我们正在处理的事情很重要。这对我来说很有效,谢谢你提供的有用信息。计时器一结束,我就接受答案