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