写入文件后从文件中读取行

时间:2017-07-02 10:49:35

标签: python python-3.x file

我正在尝试制作短信程序。 程序要求您插入用户名和密码(并验证密码) 现在,在您登录后,您可以写信给其他人或阅读您的文件(在您创建帐户后,程序将创建一个文本文件:.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

非常感谢你!

2 个答案:

答案 0 :(得分:2)

首先,您无需键入loginFile.close(),因为使用with时他就是处理它的人。{/ p>

第二个,修复with语句与之后两行之间的缩进。

第三次,使用rstrip以删除行尾的空格,就像使用raw_input时不包含空格一样。

with open(login_user+'.txt', 'r') as loginFile:
    first_line = loginFile.readline().rstrip()
  

string.rstrip(s [,chars])

     

返回删除了尾随字符的字符串副本。如果是chars   省略或无,删除空格字符。如果给予和   不是没有,字符必须是一个字符串;字符串中的字符将是   从字符串末尾剥离此方法被调用。

答案 1 :(得分:1)

lognFile.readline()返回包含结尾\n的字符串; raw_input OTOH不包括\n