如何将数据从文件加载到代码并使用它

我正在创建一个登录系统,首先它会询问您是否已注册。您可以创建新的用户名,或者如果您已经存在,则可以登录。我的问题是我将用户名和密码的数据保存到一个文件中。我想在每次运行我的代码时加载用户名和密码,并在不创建任何新用户的情况下登录旧用户。


这是我的代码:


# global variable

users = {}

register = ''

valid = True

file = open('user_Info.txt', 'a')

# create a status if the user exist yes or no if yes old user is no new user

def registration():

    global register, valid, file

    register = input('if you are already registered enter y, n if you are a new user (enter x to exit): ')

    if register == 'y':

        old_User()

    elif register == 'n':

        new_User()

    else:

        register == 'x'

        valid = False

# Loading data into users global variable

def load_User():

    global users

    users = set(open('user_Info.txt', 'r'))


# new user

def new_User():

    global users, file

    username = input('creat username: ')

    file.write(username + ',')

    if username in users:

        print('username already exists!!!!!!')

    else:

        password = input('create a strong password: ')

        users[username] = password

        print('username created :)')

        file.write(password + ',\n')

# old user

def old_User():

    global users

    exist_Username = input('please enter your username: ')

    exist_Password = input('please enter your password: ')

    if exist_Username in users and users[exist_Username] == exist_Password:

        print('you have successfully logged in: ')

    else:

        print('Wrong username or password please try again')

def run():

    global valid, users

    load_User()

    while register != 'x':

        registration()

    file.close()

# execution code

run()

print(users)

这里我创建文件并保存它,并使用一些集合来加载信息但\n打印出来。我不知道为什么。我还想将加载数据与用户名和密码相关联,以便我可以在此代码中使用它。


月关宝盒
浏览 81回答 1
1回答

鸿蒙传说

我认为你在这里犯了一个错误def new_User():global users, fileusername = input('creat username: ')file.write(username + ',') # you write the username before seeing if it existif username in users:    print('username already exists!!!!!!')else:    password = input('create a strong password: ')    users[username] = password    print('username created :)')    file.write(password + ',\n')我可以建议您改为这样做:def new_User():global users, fileusername = input('creat username: ')if username in users:    print('username already exists!!!!!!')else:     password = input('create a strong password: ')            print('username created :)')    file.write(username+' , '+password+'\n') # write username,password关于加载用户,您将它们加载到一个列表中,其中文件的每一行都是一个元素(用户,密码),然后您可以像那样使用它或(推荐)创建一个类用户,该类将具有属性用户名和密码您将使用为每个用户创建一个对象,您可以这样做:def load_users() :    with open('user_Info.txt') as f:    users_list = list(f) # each element is a string of username,password
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python