2017-09-08 7 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 파일에서 쓰기/읽기를 시도했지만 성공하지는 못했습니다. 이것이 올바른 접근 방법입니까?

도움이 될 것입니다.

감사

(I이 검색 시도했지만 내가 무엇을 찾고 찾을 수 없습니다. How to create a python dictionary that will store the username and password for multiple accounts가 가까이)

+0

pls가 코드 들여 쓰기를 수정합니다. 올바른 접근 방식은 데이터베이스가 될 수 있지만 sqlite 또는 MySql을 시작할 수는 있지만 텍스트 파일은 시작할 수 없습니다. – jps

+1

고정 된 들여 쓰기 – MrPogson

답변

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) 

: 스크립트를 다시 시작할 때 현재 메모리에 (마지막 스크립트를 실행하는 동안 저장) 이잖아 그렇지 않으면 내가 사용 피클 내 문제를 해결

0

모든 것을 내려 줄게 계정 세부 정보는 다음과 같이 저장됩니다.

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