繁体   English   中英

(Python) 如何测试一个字符串是否包含在文件中

[英](Python) How to test if a string is contained in a file

我正在尝试创建一个用户名数据库,除了我尝试测试文件是否包含输入的文本之外,所有代码都按照我想要的方式运行。 出于某种原因,它只是运行通过 elif 语句并命中 else 语句(如果它已存在于文本中)。

这是完整的代码:

class username:
    def add():
        while(True):
            file = open("usernames.txt", 'r+')
            names = list(file.read())
            entered = str(input("Username: "))
            if len(entered) == 0:
                print("Please enter a valid username\n")
                continue
            elif not(entered.isalpha):
                print("Please enter a valid username\n")
                continue
            elif entered in file.read():
                print("That name is already in use.",
                      "\nPlease enter a different username. \n")
                continue
            elif len(entered) < 4 or len(entered) > 12:
                print("Please enter a username with 4-12 characters.\n")
                continue
            else:
                print(entered)
                file.close()
                add = open("usernames.txt", 'a+')
                plusnewline = entered + "\n"
                add.write(plusnewline)
                add.close()
                break

    def list():
        file = open("usernames.txt","r+")
        names = file.read()
        print(names)
        file.close()

username.add()
username.list()

编辑:影子回答:

更改:

names = list(file.read())

到:

names = file.read()

并改变了:

elif entered in file.read():

到:

elif entered in names:

您只能调用file.read一次 - 之后它已经被读取。

要么使用file.seek(0)返回到文件的开头(这将允许您再次读取它),或者将内容缓存在一个变量中以便您可以重用它(即,引用您的names变量)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM