如何在python中正确循环一个文本文件以获取用户名/pw进行登录?
嘿,我在检查用户名是否在数据库中时遇到问题。如果用户名现在在数据库中,获取用户名可以正常工作,但是我如何检查它是否不在数据库中?我所得到的东西在循环中循环并每次调用如何在python中正确循环一个文本文件以获取用户名/pw进行登录?,python,file,authentication,tkinter,Python,File,Authentication,Tkinter,嘿,我在检查用户名是否在数据库中时遇到问题。如果用户名现在在数据库中,获取用户名可以正常工作,但是我如何检查它是否不在数据库中?我所得到的东西在循环中循环并每次调用invalid\u details() 代码: 如果不知道invalid_details()的作用,我不确定这正是您想要的,但您已经明白了 if username.get() == "" or password.get() == "": invalid_details() return False for line
invalid\u details()
代码:
如果不知道
invalid_details()
的作用,我不确定这正是您想要的,但您已经明白了
if username.get() == "" or password.get() == "":
invalid_details()
return False
for line in open(file_name, "r").readlines():
login_info = line.strip().split(".")
if username.get() == login_info[0]:
if password.get() == login_info[1]:
print(login_info[0])
print(login_info[1])
print(login_info[2])
print(login_info[3])
print(login_info[4])
return True
invalid_details()
print("wrong password")
return False
# If username did not match, continue to the next line.
# All lines were checked and the username did not match.
invalid_details()
print("username not found")
return False
用户名/密码文件的具体布局如何?@DanielLavedoniodeLima username.password.name.name.email
def add_account():new_password_info=new_password.get()new_username_info=new_username.get()new_name=first_name.get()new_姓氏=姓氏。get()new_email=email_address.get()#将新的详细信息写入file file=open(file_name,“a”)文件。写入(new_username_info+“+”+new_password_info+“+”+new_name+“+new_姓氏+”+new_email+“\n”)文件。关闭()
您的逻辑有点错误<第行中的code>username.get()不能唯一标识一行。仅将用户名与用户名字段进行比较(登录信息[0]
)。如果用户名不匹配,这并不意味着无效的\u详细信息()。相反,您应该在循环结束(没有找到匹配项)后转到下一行并调用invalid_details()
。@hmm非常感谢@KevinNisbet请用适当的缩进编辑原始帖子中的代码,并在必要时更新问题。在注释中读取代码块非常困难。
if username.get() == "" or password.get() == "":
invalid_details()
return False
for line in open(file_name, "r").readlines():
login_info = line.strip().split(".")
if username.get() == login_info[0]:
if password.get() == login_info[1]:
print(login_info[0])
print(login_info[1])
print(login_info[2])
print(login_info[3])
print(login_info[4])
return True
invalid_details()
print("wrong password")
return False
# If username did not match, continue to the next line.
# All lines were checked and the username did not match.
invalid_details()
print("username not found")
return False