sea*_*ean 5 python validation file python-3.x
我正在为我的项目创建一个登录系统,我将用户名和密码存储在一个文本文件中,第一列中包含用户名,第二列中包含密码,然后用新行分隔每个登录名/密码并使用:as作为用户名/密码之间的障碍.
输入正确的用户名和密码后,我总是得到不正确的登录信息,但是如果我只是将用户名与文件进行比较,它就能正常运行.即使我直接从文件中打印密码和用户名,然后将其打印在我输入的用户名/密码旁边,它仍然完全相同,但仍然说不正确的登录!
def login():
file=open("user.txt","r")
user=input("enter usename")
password=input("enter password")
Check=False
for line in file:
correct=line.split(":")
if user==correct[0] and password==correct[1]:
Check=True
break
if Check==True:
print("succesffuly logged in")
file.close()
mainMenu()
else:
print("incorrect log in")
file.close()
login()
Run Code Online (Sandbox Code Playgroud)
我怀疑你\n在每个用户/密码字符串的末尾都有一个.我怀疑在被读入之后line看起来像user:pass\n.line.strip().split(':')用于删除导致password==correct[1]失败的换行符.
更换:
for line in file:
correct=line.split(":")
Run Code Online (Sandbox Code Playgroud)
附:
for line in file:
correct=line.strip().split(":")
Run Code Online (Sandbox Code Playgroud)
为什么,请参阅https://docs.python.org/2/library/string.html#string.strip
string.strip(s[, chars])返回删除了前导和尾随字符的字符串副本.如果
chars省略或None删除空格字符.如果给定而不是None,则chars必须是字符串; 字符串中的字符将从调用此方法的字符串的两端剥离.
| 归档时间: |
|
| 查看次数: |
79 次 |
| 最近记录: |