【发布时间】:2013-11-25 15:21:20
【问题描述】:
在尝试为个人项目制作一个简单的注册/注册客户端应用程序时。我正在尝试从文件中加载用户列表,并将它们与可能的用户名进行比较。如果用户名已经存在,程序会给他们一个错误。
这是代码的精简克隆:
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
用户列表存储在一个文件中,以便可以再次打开、附加和保存,而无需存储在程序中。我当前的问题是用户列表保存为字符串而不是数组。有一个更好的方法吗?谢谢你。
编辑:感谢用户 lorenzo 提供的解决方案。我的朋友们告诉我要为那些想不通的人发布一个快速(非常简单)的副本。
新代码:
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。
【问题讨论】:
-
输入文件的格式是什么?你只读了一行。
标签: arrays file-io python-3.x