import ast
def register():
cred_dict = {input("Username: "): input("Password: ")}
Сбор известных учетных данных - ошибка возникает в "cred_data = ast.literal_eval (file.read ())" "неожиданном EOF при синтаксическом анализе (, строка 0)"
with open("database.txt") as file:
cred_data = ast.literal_eval(file.read())
Добавить новыйучетные данные
cred_data.update(cred_dict)
Сохранить учетные данные
with open("database.txt", "a") as file:
file.write(cred_data)
def login():
Загрузить учетные данные
print("--------LOGIN--------")
with open("database.txt") as file:
cred_pairs = ast.literal_eval(file.read())
Выполнить действительный вход в систему
return check_login(cred_pairs)
def check_login(credential_pairs):
Собрать данные
try:
username = input("Username: ")
password = input("Password: ")
except KeyboardInterrupt:
User cancelled
print("Cancelled login")
return False # tell the program we haven't logged in
Существует ли пользователь?
if username in credential_pairs:
Если true
try:
Соответствует ли их пароль?
if credential_pairs[username] == password:
Если true
print(f"Welcome, {username}.")
return True # tell the program we've logged in
else:
Если false
print("Your password is incorrect")
return False # tell the program we haven't logged in
except KeyError:
Что-то пошло не так!
print("Something went wrong. Is your RAM broken?")
return
Скажите программе, что что-то пошло не так
except KeyboardInterrupt:
Пользователь отменен
print("Cancelled login")
return False # tell the program we haven't logged in
else:
print("That user does not exist.")
return False # tell the program we haven't logged in
Если выполнение когда-либо достигнуто здесь, вы были взломаны
return # tell the program something went wrong
command = input("Would you like to [login] or [register]?\n>>> ")
if command == "register":
register()
elif command == "login":
login()