我正试着制作一个短信程序。程序要求您现在插入您的用户名和密码(并验证密码),登录后,您可以写信给其他人,也可以读取您的文件(在您创建帐户之后,程序将创建一个文本文件:.txt,并在第一行保存密码)。
如果您想在退出程序后登录,您可以这样做,因为程序只需要知道是否有一个带有您插入的用户名的.txt文件,并检查该文件的第一行以与输入(密码)进行比较。
问题是当页面不清晰(我写信给那个用户)时,我无法登录。我甚至打印第一行,它与我的输入完全匹配。有什么问题吗?
我的代码:(只是读第一行并与输入进行比较的部分)
with open(login_user+'.txt', 'r') as loginFile:
first_line = loginFile.readline()
loginFile.close()
while True:
login_password = raw_input('Password: ') # Taking password
if counter == 4:
print 'You failed 5 times, wait 30 seconds'
counter = 0
sleep(30)
elif login_password == first_line:
print '\nYou\'re connected to ' + login_user
break
else:
print(first_line)
print 'Incorrect password, Try again.'
counter += 1非常感谢您提前!
发布于 2017-07-02 10:54:40
首先,您不需要键入loginFile.close(),因为在使用with时,他是处理它的人。
其次,修复with语句和之后的两行之间的缩进。
第三,使用长条删除行尾的空白,就像使用raw_input时不包含空白一样。
with open(login_user+'.txt', 'r') as loginFile:
first_line = loginFile.readline().rstrip()string.rstrip(s,chars) 返回字符串的副本,并删除尾随字符。如果省略字符或无字符,则删除空白字符。如果给定而不是空,则字符必须是字符串;字符串中的字符将从调用此方法的字符串的末尾剥离。
发布于 2017-07-02 10:55:04
lognFile.readline()返回包含结束\n的字符串;raw_input OTOH不包含\n。
https://stackoverflow.com/questions/44869979
复制相似问题