首先,我是这个网站的新手。你好:))
我正在努力制作一个程序。我现在正在尝试做的是登录系统 - 因此用户可以输入用户名和密码(他们已经注册),然后将用户名和密码与名为“accounts.txt”的文件中的用户名和密码进行匹配。
这意味着我可以将以后生成的数据与其帐户相关联。
这是我到目前为止所拥有的:
while loop == (2):
print("Welcome to login.")
verifyuser = input("Enter your username: ")
verifypass = input("Enter your password: ")
f = open("accounts.txt","r")
for line in f:
if re.match(verifyuser, line) and match(verifypass, line):
loop = (3)
循环3在验证后将其带到程序的其余部分。我知道这个重新匹配的东西并不完全有效,但我不知道我怎么能这样做,而且我尝试过几条不同的路线 - 我不是故意要求别人为我做任何事情,我不能做这个特定的领域。
由于
答案 0 :(得分:0)
re.match用于正则表达式,这里似乎没有使用。 https://docs.python.org/2/library/re.html#re.match
虽然我不建议在文件中使用用户凭据,但为什么不使用equals运算符?
if verifyuser == line:
另外,我不确定同一行的verifyuser和verifypass是如何成立的?
user_match = False
pswd_match = False
for line in f:
if verifyuser == line:
user_match = True
if verifypass == line:
pswd_match = True
if user_match and pswd_match:
# loop = (3)
答案 1 :(得分:0)
我实际上做过这样的事情,我用不同于你的方式做到了。这就是我的文本文件看起来像存储信息:
username : password
然后我会要求这样的信息:
f = open('filename.txt', 'r')
username = input('Enter your username: ')
password = input('Enter your password: ')
user = username + ' : ' + password
if user in f.read():
print('Loggin successful')
else:
print('incorrect username or password')
如果你想给用户提供5次机会,你可以添加一个不错的小循环。
for i in range(5):
f = open('filename.txt', 'r')
username = input('Enter your username: ')
password = input('Enter your password: ')
user = username + ' : ' + password
if user in f.read():
print('Loggin successful')
break
else:
print('Incorrect username or password')
这与我的脚本不同,开采时间更长,但这应该可以完成工作!