使用循环搜索文本文件

时间:2018-08-02 15:55:19

标签: python python-3.x

我正在尝试创建一个非常简单的代码,它将搜索文本文件以查看用户名是否已注册。但是,我不确定如何在文本文件中进行搜索以找到与用户名匹配的内容。

到目前为止,这是我的代码:

NotLoggedIn = False
while NotLoggedIn == False:
    username = input("\nplease enter a username or to sign in type '!'")
    for next in records:
        if username == records:
            print("hi")
            NotLoggedIn = True

谢谢。

2 个答案:

答案 0 :(得分:0)

如果您有一个名为records.txt的文本文件,可以尝试以下操作,因为根据您的问题,您需要搜索文本文件。

f = open("records.txt", 'r') 

NotLoggedIn = False
while NotLoggedIn == False:
    username = input("\nplease enter a username or to sign in type '!'")
    for line in f.readlines():
        if username in line:
            print("hi, username exists in the file")
            NotLoggedIn = True
            break

if not NotLoggedIn:
    print ("User does not exist in the file")

f.close()            

答案 1 :(得分:0)

这取决于您如何编写文本文件。 如果该文本文件是这样的: 用户名1 \ n用户名2 \ n ... 然后我们可以像这样编写代码:

f = open("records.txt","r")
m = f.readlines()
f.close()
NotLoggedIn = False
while NotLoggedIn == False:
    username = input("\nplease enter a username or to sign in type '!'") 
    for line in m :
        if line.replace("\n","") == username :   # removing "\n" from the line 
            print("hi")
            NotLoggedIn = True  
            break       # No need to check others 

重要的是要具体。 您不应该使用“ in”在字符串中查找用户名,因为如果您有一个名为string的用户名,那么如果有人键入str,它将像这样:

if "str" in "string" 

女巫是正确的,但文本文件中不存在。因此,请尝试使用“ ==”运算符。