2016-11-11 4 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 +"를 사용하면 파일을 읽고 쓸 수 있습니다. 난 당신이 SQL을 사용하고자하는 경우, 비록 로그인 정보에 대한 SQL 데이터베이스를 사용하는 것이 좋습니다 것이 내가이 작성하지 않은

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

은 내가 sqlite3를 라이브러리/모듈

를 사용하는 것이 좋습니다

또한 RAM에 저장된 사용자 입력에 의해 변경되는 변수로 세부 사항을 저장하기 때문에 프로그램에서 '내 세부 정보 기억'을 할 수 없습니다. 이 데이터는 일단 프로그램이 종료되면 지워 지므로 사용자 입력을 통해 변경되면 프로그램을 닫을 때마다 입력을 다시 변경해야합니다.

사용자 이름과 같은 문자열을 파일에서 검색 할 수도 있습니다. Search for string in txt file Python

관련 문제