如何使用文本fi创建登录

2024-09-28 22:20:23 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我一直在尝试创建一个测试,你必须有一个帐户,这意味着你可以注册和登录。我成功地编写了register部分的代码(我很自豪),它将登录详细信息保存到一个单独的文本文件中,当它保存登录详细信息时,它如下所示:用户名:密码在

现在我在努力登录部分,我想你必须阅读文本文件,然后分割用户名和密码,然后我有些如何将输入的用户名和密码与保存的用户名和密码进行比较。 到目前为止,我对登录部分所做的是这样做的,但它不起作用:

def login():
filename = 'Accounts.txt'
openfile = open('Accounts.txt', "r")
Userdata = openfile.readlines()
with open('Accounts.txt', 'r') as file:
    for line in file:
        user2, passw = line.split(':')
        login2 = input("Enter username: ")
        passw2 = input("Enter passwordd: ")
        if login2 == user2 and passw2 == passw:
            print("Logged in")
        else:
            print("User or password is incorrect!")
openfile.close();

现在整个代码是这样的(如果需要):

^{pr2}$

如果你有什么想法,我可以如何使登录部分,这将是有帮助的。在


Tags: 代码intxt密码line详细信息open用户名
3条回答

您正在询问帐户文件中每一行的用户用户名和密码。在for循环之外获取输入的登录信息。在

欢迎来到编程! 这可能会让人望而生畏,但要继续学习和练习。你说得对!在

我在你的代码中看到了一些可以改进的地方。我在下面发表评论:

1)不需要同时使用open()(和close())和with来访问文件的内容。在本例中,只需使用with。它会使你的代码更简单。(A good answer about ^{}

2)在循环中请求用户登录和密码(也称为多次)。这对你的用户来说可能很烦人。将input的调用移到for循环之前。在

3)当登录成功时,您还需要break执行循环。在

因此,稍微改进一下的代码版本是:

filename = 'Accounts.txt'
with open(filename, 'r') as file:
    login2 = input("Enter username: ")
    passw2 = input("Enter password: ")

    for line in file:
        user2, passw = line.split(':')
        if login2 == user2 and passw2 == passw:
            print("Logged in")
            break
        else:
            print("User or password is incorrect!")

不确定什么是不工作在您的代码,但我更新代码如下,并能够打印登录。在

def login():
#filename = 'Accounts.txt'
#openfile = open('Accounts.txt', "r")
#Userdata = openfile.readlines()
with open('Accounts.txt', 'r') as file:
    login2 = input("Enter username: ")
    passw2 = input("Enter passwordd: ")
    for line in file:
        user2, passw = line.split(':')
        if login2 == user2 and passw2 == passw:
            print("Logged in")
            break
        else:
            continue

login()

相关问题 更多 >