2013-11-25 2 views
0

개인 프로젝트의 간단한 등록/가입 클라이언트 전용 응용 프로그램을 만드는 중. 파일에서 사용자 목록을로드하고 가능한 사용자 이름과 비교하려고합니다. 사용자 이름이 이미 존재하면 프로그램에서 오류를 발생시킵니다.python 파일에서 목록 읽기 3

여기서 코드의 축합 클론 :

u1 = str(input("Input username: ")) 
    t = open("userlistfile","r") 
    userlist = t.readline() 
    y = 0 
    for x in range(0, len(userlist)-1): 
     if userlist[y] == u1: 
      print("\n !Error: That username (",u1,") is already taken!") 
     y += 1 

사용자리스트가 열릴 수 있도록, 파일에 저장된 추가, 프로그램에 저장되지 않고, 다시 저장된다. 현재 문제는 사용자 목록이 배열이 아닌 문자열로 저장된다는 것입니다. 이 작업을 수행하는 더 좋은 방법이 있습니까? 고맙습니다.


편집 : 솔루션에 대한 사용자 로렌조에 감사합니다. 내 친구들은 당신이 그것을 알아낼 수없는 사람들을 위해 (정말로 간단한) 간단한 복사본을 게시하라고 나에게 말하고 있습니다.

새로운 코드 :

u1 = str(input("Input username: ")) 
    t = open("userlistfile","r") 
    userlist = t.read()    #Readline() changed to Read() 
    userlist = userlist.split('--') #This line is added 
    y = 0 
    for x in range(0, len(userlist)-1): 
     if userlist[y] == u1: 
      print("\n !Error: That username (",u1,") is already taken!") 
     y += 1 

예 텍스트 파일 내용 :

smith123--user1234--stacky 

이 라인은 상기 문자열 분리해서한다 ('-') seperators 및 배열로 각 분할 부분을 추가 :

userlist = userlist.split('--') 
#Is used so that this (in the text file) 
Smith123--user1234--stacky 
#Becomes (in the program) 
userlist = ['Smith123','user1234','stacky'] 

오랫동안 미안하지만 ... 매우 흥미 롭습니다. Lorenzo에게 다시 한번 감사드립니다. D.

+1

입력 파일의 형식은 무엇입니까? 당신은 단지 한 줄을 읽고 있습니다. –

답변

0
userlist = t.readline() 

은 파일에서 한 줄을 문자열로 읽습니다. 반복하면 단어가 아닌 문자열에서 문자를 가져옵니다.

당신은 문자열의 분할() 방법 또는 더 일반적인 re.split() 함수 문자열에서 문자열 (단어)의 목록을 얻을 수 있어야합니다.

관련 문제