[英](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.