从python中的文本文件登录

时间:2018-07-14 12:46:56

标签: python-3.x

我正在尝试在python中创建用户登录。创建帐户有效,但是当尝试成为现有用户时无效。 这是该部分的代码:

    A;A Thing;1;A Child 1;10.20
    A;A Thing;2;A Child 2;20.50
    B;B Thing;3;B Child 1;20.40
    B;B Thing;4;B Child 2;5,60

即使用户名和密码正确,它也不会打印欢迎。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

问题似乎出在代码的以下行上:

if(file.readline())== ('Username: ' + un):

if条件正在检查输入的用户名是否等于"Username: inputted_user_name"。以下行中的input()函数:

un = input("Username: ")

不将输入的用户名附加到"Username: "。仅仅是为了通知用户他/她正在输入什么,因此您应该将if条件更改为此:

if file.readline() == un:

答案 1 :(得分:0)

这里的逻辑有些瑕疵,好像用户名正确一样,永远不会检查密码。但是,直接的错误是readline()将包含换行符。您可以使用file.readline().strip()删除它。

来自documentation

  

f.readline()从文件中读取一行;字符串末尾会保留一个换行符(\ n),如果文件未以换行符结尾,则仅在文件的最后一行将其省略。

此外,由于文件格式在问题中是未知的,因此很难判断是否应与"Username: ..."或仅与输入的数据进行比较。当前文件的内容必须为:

Username: myusername
Password: mypassword

如果这不是故意的,则需要将比较更改为:

if file.readline().strip() == un: