2013-11-25 29 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 

這條線將單獨在字符串( ' - ')分隔符和每個分割部分追加到一個數組:

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

對不起,很長的文章...發現它很有趣。再次感謝洛倫佐:D。

+1

輸入文件的格式是什麼?你只是從中讀取一行。 –

回答

0
userlist = t.readline() 

從文件中讀取一行作爲字符串。然後,迭代獲取字符串中的字符而不是單詞。

您應該能夠從一個字符串得到的字符串(單詞)的列表與字符串的分裂()方法或更一般re.split()功能。