2016-11-11 9 views
0

ユーザーをログに記録するPython 3.5コードがあります。ファイルにファイルをリンクするにはどうすればよいですか?

これは、ユーザーが作成し、それらをログに記録します。

を私はプログラムを強制終了し、それを再実行した後、それが作成したユーザーの詳細は覚えていません。

ファイルにドキュメントをリンクするにはどうすればよいですか?

+2

あなたが試みたコードのいくつかを共有してください。あなたが最初に問題に向かっていくつかの作業を行ったことを示すなら、ここで助けを得る可能性が非常に高いです。 – cfreear

答えて

0

私は今週似たようなプロジェクトをやっていましたが、これが私の頭の中です!

import csv 

def displayMenu(): 
    status = input("Are you a registered user? y/n? ") 
    if status == "y": 
     login() 
    elif status == "n": 
     newUser() 

def login(): 

    with open('users.txt') as csvfile: 
     reader = csv.DictReader(csvfile) 
     database = [] 
     for row in reader: 
      database.append(dict(username=row['username'], 
           password=row['password'], 
           function=row['function'])) 

loggedin = False 
while not loggedin: 
    Username = input('Fill in your username: ') 
    Password = input('Fill in your password: ') 
    for row in database: 
     Username_File = row['username'] 
     Password_File = row['password'] 
     Function_File = row['function'] 
     if (Username_File == Username and 
      Password_File == Password and 
       Function_File == 'user'): 
      loggedin = True 
      print('Succesfully logged in as ' + Username) 
     elif (Username_File == Username and 
       Password_File == Password and 
       Function_File == 'admin'): 
      loggedin = True 
      print('Succesfully logged in as the admin.') 
     if loggedin is not True: 
      print ('Failed to sign in, wrong username or password.') 

def newUser(): 
    signUp = False 
    while not signUp: 
     NewUsername = input("Create login name: ") 
     NewUsername = str(NewUsername) 
     with open('users.txt', 'r') as UserData: 
       reader = csv.reader(UserData, delimiter=',') 
     if (NewUsername) in open('users.txt').read(): 
      print ('Login name already exist!') 

     else: 
      NewPassword = input("Create password: ") 
      NewPassword = str(NewPassword) 
      with open('users.txt', 'a') as f: 
       writer = csv.writer(f) 
       UserPassFunction = (NewUsername,NewPassword,'user') 
       writer.writerows([UserPassFunction]) 
      print("User created!") 
      signUp = True 






# ---- Main ---- # 

displayMenu() 
0

ユーザーがLogindetails.txtがあなたのプログラムと同じ場所に保存されている.txtファイルで詳細情報を、ログイン保存するファイルにデータを読み書きすることができます。 Windowsノートパッドは.txtファイルを使用します。

import linecache 
with open("LoginDetails.txt", "r") as po: 
    LoginDetails = linecache.getline('LoginDetails.txt', int(LineNumber)).strip() 

"r"は読み取り専用モードでファイルを開きます。 "r +"を使用すると、ファイルを読み書きできます。

def replace_line(file_name, line_num, text): 
    lines = open(file_name, 'r').readlines() 
    lines[line_num] = text 
    with open(file_name, 'w') as out: 
     out.writelines(lines) 

私はこれを作成していないPS、オリジナルポストここEditing specific line in text file in python

私はあなたがSQLを使用したい場合、私はsqlite3のライブラリ/モジュール

を使用することをお勧めします、しかしログインの詳細についてSQLデータベースを使用することをお勧めします

また、RAMに格納されているユーザー入力によって変更された変数として詳細を格納するため、自分のプログラムは「自分の詳細を覚えていない」ことがあります。このデータは、プログラムが終了すると消去されるので、ユーザー入力によって変更された場合は、プログラムを閉じるたびに入力を変更する必要があります。

また、ユーザー名などの文字列をファイルでスキャンすることもできます。 Search for string in txt file Python

関連する問題