为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

月关宝盒 2022-11-29 15:53:08
我正在创建一个登录系统,首先它会询问您是否已注册。您可以创建新的用户名,或者如果您已经存在,则可以登录。我的问题是我将用户名和密码的数据保存到一个文件中。我想在每次运行我的代码时加载用户名和密码,并在不创建任何新用户的情况下登录旧用户。这是我的代码:# global variableusers = {}register = ''valid = Truefile = open('user_Info.txt', 'a')# create a status if the user exist yes or no if yes old user is no new userdef 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 variabledef load_User():    global users    users = set(open('user_Info.txt', 'r'))# new userdef 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 userdef 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 coderun()print(users)这里我创建文件并保存它,并使用一些集合来加载信息但\n打印出来。我不知道为什么。我还想将加载数据与用户名和密码相关联,以便我可以在此代码中使用它。
查看完整描述

1 回答

?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

我认为你在这里犯了一个错误


def new_User():

global users, file

username = input('creat username: ')

file.write(username + ',') # you write the username before seeing if it exist

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')

我可以建议您改为这样做:


def new_User():

global users, file

username = 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


查看完整回答
反对 回复 2022-11-29
  • 1 回答
  • 0 关注
  • 80 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号