使用pickle文件python登录用户名和密码

时间:2019-01-13 05:03:33

标签: python login pickle registration

我当前正在执行NEA,并且登录阶段遇到问题。这是我的注册码:

def login_create():
        import pickle
        import os

        new_login_filename = 'new_login.dat'

        login_list = []

        if os.path.exists(new_login_filename):
           yeet = open(new_login_filename,'rb')
           pickle.load(yeet)
        new_login = username, password
        login_list.append(new_login)


        with open(new_login_filename,'ab') as wfp:
            pickle.dump(login_list, wfp)


        with open(new_login_filename,'rb') as rfp:
            login_list = pickle.load(rfp)

它将注册的用户名和密码保存到一个名为new_login的.dat文件中。我似乎无法解决如何使登录生效。这是我目前拥有的:

def login():
        import pickle
        usernameV = False
        passwordV = False
        username_login = input("Enter your Username")
        password_login = input("Enter your Password")
        f = open("new_login.dat","rb")
        for i in range(len(new_login)):
            if username_login in new_login[i][0]:
                        print("Valid Username")
                        usernameV == True

            elif password_login in new_login[0][i]:
                        print("Valid Password")
                        passwordV == True
            elif usernameV == True and passwordV == True:
                        valid = True
                        return valid
        f.close()

我收到未定义new_login的错误,然后根本不起作用。由于我一直在努力解决所有问题,并且无所不在,我无所事事。

1 个答案:

答案 0 :(得分:0)

f = open("new_login.dat","rb")`
for i in range(len(new_login)):
    ...

您已将文件对象分配给名称f,然后在下一行中使用名称new_login-您是否打算将其分配给new_login?遍历文件的规范方法是

with open("new_login.dat","rb") as new_login:
    for line in new_login:    #you don't have to use "line" you can use whatever name you want
        if username_login in line[0]:
            ....
相关问题