2017-09-08 30 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

plsがコードインデントを修正しました。適切なアプローチはデータベースで、あなたはsqliteやMySqlを起動できますが、テキストファイルは起動できません。 – jps

+1

固定インデント – MrPogson

答えて

0

あなたが一定のストレージとして外部ファイルを使用するか、他にするか必要があります。うんそのデータを保存するために何らかの種類のデータベースを使用します。それ以外の場合は、スクリプトを再起動すると、それは(最後のスクリプトの実行中に保存された)メモリに現在のthatsすべてをドロップします

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']} 
関連する問題