将用户输入与文件数据匹配

时间:2017-10-27 15:01:08

标签: python-3.x

首先,我是这个网站的新手。你好:))

我正在努力制作一个程序。我现在正在尝试做的是登录系统 - 因此用户可以输入用户名和密码(他们已经注册),然后将用户名和密码与名为“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在验证后将其带到程序的其余部分。我知道这个重新匹配的东西并不完全有效,但我不知道我怎么能这样做,而且我尝试过几条不同的路线 - 我不是故意要求别人为我做任何事情,我不能做这个特定的领域。

由于

2 个答案:

答案 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')

这与我的脚本不同,开采时间更长,但这应该可以完成工作!