2017-09-08 132 views
0

我想创建一个Python脚本,用户可以在其中创建帐户并登录。我需要保存他们的帐户详细信息(名称,DoB等),以便他们可以关闭程序和日志在下次再次。Python 3.6中的用户名和密码

#username:Password 
account = {"Admin":["Pog"],"Hughes":["Hughes"], "E": ["Echo"], "C": ["Charlie"], "B": ["Bravo"], "D": ["Delta"], "A": ["Alpha"]} 

#Check Credentials 
name=input("Username: ")     #Ask for name 
if name in account:       #Check name exists 
    print (account[name][0])    #Error test - print expected password 
    if passw==account[name][0]:    #Check for password match 
     print("welcome,", name)    #Welcome message 
else: 
    print ("Failed Authentication")  #Wrong Password 
else: 
    print("Username Not Known")    #Unknown Username 

上面的代码工作,我可以验证用户,但如何添加新用户/密码,这样他们将被添加到该计划?

我一直在尝试从txt文件写入/读取,但没有成功。这是正确的方法吗?

任何帮助将不胜感激!

感谢

(我试图寻找,但无法找到我要找的。How to create a python dictionary that will store the username and password for multiple accounts接近)

+0

请修复您的代码缩进。正确的做法是数据库,你可以启动sqlite或MySql,但不能使用文本文件。 – jps

+1

固定压痕 – MrPogson

回答

0

是的,你需要使用一个外部文件作为常量存储要不然使用某种数据库来存储这些数据。否则,当你重新启动脚本,它会这就是当前在内存中(最后一个脚本运行过程中存储)放下一切

0

使用我解决我的问题泡椒:

...

account = pickle.load(open("accounts.pkl","rb")) #Load Accounts file 
#Check Credentials 
name=input("Username: ")     #Ask for name 
if name in account:       #Check name exists 
    print (account[name][0])    #Error test - print expected password 
    passw=input("Password: ")    #Ask for Password 
    if passw==account[name][0]:    #Check for password match 
     print("welcome,", name)    #Welcome message 
     print("your Favourite Artist is: ",account[name][2]) 
     menu(name,account) 
    else: 
     print ("Failed Authentication")  #Wrong Password 
     users() 
else: 
    print("Username Not Known")    #Unknown Username 
    new_user(account) 

在哪里帐户详细信息存储如下:

{'Name': ['Password', 'Detail_1', 'Detail_2', 'Detail_3'],'Name2': ['Password', 'Detail_12', 'Detail_22', 'Detail_32']}