Python 没有从文件中读取数据?
Python not reading data from file?
我的程序应该是从乐谱文件中读取的,该乐谱工作得很好。但是,我需要检查此文件以查看是否有人在其中包含该名称 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"。再次...为什么我的程序没有在文件中找到它。
看起来你的第一个循环读取了整个文件,所以当你 运行 第二个循环时文件已经结束。可以做一个 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")
我的程序应该是从乐谱文件中读取的,该乐谱工作得很好。但是,我需要检查此文件以查看是否有人在其中包含该名称 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"。再次...为什么我的程序没有在文件中找到它。
看起来你的第一个循环读取了整个文件,所以当你 运行 第二个循环时文件已经结束。可以做一个 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")