2017-08-06 22 views
0

我不确定这是否是重复的,因为我查看了周围,但没有真正解决我的问题。 我有这个学校的作业,我必须在夏天做,第一个任务是让系统允许用户创建一个账户,保存为.txt文件,然后他们就可以使用他们创建的账户登录。 我有做部分记录有问题,即使我输入正确的用户名和密码就无法登录我进去。从Python中的.txt文件设置变量

if neworlog == 2: #Option 2, log in 
    logind = open("UserLoginDetails.txt","r") 
    username = logind.readlines()[0] 
    logind.seek(0) 
    password = logind.readlines()[1] 
    inputusnm = input("Please enter your username:\n") 
    inputpswd = input("Please enter your password:\n") 
    if inputusnm == username and inputpswd == password: 
     print("You are now logged in") 
     loggedin = True 
    else: 
     print("The entered username or password are incorrect") 
     print("Please try again") 

这是我的代码(可能会畏缩值得,IDK的我学习)登录。 'logind'变量用于.txt,'用户名'和'密码'是文本文件中正确用户名和密码的变量,'inputusnm'和'inputpswd'变量用于输入的用户名和密码。

我试图解决它的问题。我曾尝试使用'username'和'password'变量的一个普通字符串,并且记录了我,并且当他们正在读取.txt时,我也试着打印出'用户名'和'密码'变量,并打印出正确的行/单词。

这是.txt文件的图片:

picture

我有点失去了在这一点上和任何帮助,将不胜感激。

+0

你有一个问题/问题? – melpomene

+1

如果你尝试'print(repr(username))'和'print(repr(password))',你会看到换行符'\ n'。您可以使用'username = username.rstrip('\ n')'将其删除。 –

+0

当您读取用户名或密码时,它们最后包含新行字符 - ''\ n''。你需要摆脱它。您可以在这些字符串上使用'.strip()'来删除多余的空格。你的问题也不清楚。以上建议基于您无法登录的猜测。请编辑该问题并专门询问您需要什么? –

回答

1

可能是它帮助你:简单的得到下一行,这样你就不会需要做的寻求,及钢带明确不可见的字符

username = next(logind).strip() 
password = next(logind).strip() 
+1

小心使用'strip' - 这会去除所有空格,而不仅仅是换行符。用户名或密码以空格开头/结尾的用户将无法登录。 –

+0

谢谢,这个工作,但我会记住带问题 – FLAiR

+0

@疯狂你是对的 –

相关问题