Имя пользователя и пароль для входа с использованием Pickle файла Python - PullRequest
0 голосов
/ 13 января 2019

Я сейчас делаю 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)

Сохраняет зарегистрированное имя пользователя и пароль в файл .dat с именем new_login. Я не могу понять, как заставить логин работать, хотя. Вот что у меня сейчас:

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 голосов
/ 13 января 2019
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]:
            ....
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...