首页 > 解决方案 > 如何正确循环浏览python中的文本文件以获取用户名/密码以进行登录?

问题描述

嘿,我在检查用户名是否在数据库中时遇到问题。如果用户名现在在数据库中,则获取用户名可以正常工作,但我将如何检查它是否不在数据库中?我有什么循环通过循环和invalid_details()每次调用。

代码:

if username.get() == "" or password.get() == "":
    invalid_details()
else:
    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

        if username.get() != login_info[0]:
            invalid_details()
            print("username not found")

标签: pythonfileauthenticationtkinter

解决方案


在不知道做什么的情况下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

推荐阅读