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

Python 如何将数据从文件加载到代码并使用它,python,python-3.x,Python,Python 3.x,我正在创建一个登录系统,首先它会询问您是否已注册。您可以创建新用户名,或者如果您已经存在,则可以登录。我的问题是我将用户名和密码的数据保存到一个文件中。我想在每次运行代码时加载用户名和密码,并登录到老用户而不创建任何新用户 这是我的代码: # global variable users = {} register = '' valid = True file = open('user_Info.txt', 'a') # create a status if the user exist yes

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

这是我的代码:

# 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
。我不知道为什么。
我还想将加载数据与用户名和密码链接起来,以便在此代码中使用。

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

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
关于加载用户,您将其加载到一个列表中,其中文件的每一行都是一个元素(用户、密码),然后您可以这样使用它,或者(推荐)创建一个类用户,该类用户将具有属性username和password,您将使用这些属性为每个用户创建一个对象,您可以这样做:

def load_users() :
    with open('user_Info.txt') as f:
    users_list = list(f) # each element is a string of username,password

如果你是新来的,你应该花额外的时间阅读说明和网站规则,这些都是新问题所强调的。它将真正帮助你得到你需要的帮助。就目前而言,这个问题有一些相当严重的问题,大多数问题都可以通过阅读说明来避免。你可以查看我的建议