【问题标题】:Reading lines from a file after writing to it写入文件后从文件中读取行
【发布时间】:2017-07-02 10:49:35
【问题描述】:

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

非常感谢您!

【问题讨论】:

    标签: python python-3.x file


    【解决方案1】:

    首先,您不需要键入loginFile.close(),因为使用with 时,他是处理它的人。

    第二,修正with语句和之后的两行之间的缩进。

    第三,使用rstrip来删除行尾的空白,因为当您使用raw_input时它不包含空白。

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

    string.rstrip(s[, chars])

    返回删除了尾随字符的字符串副本。如果字符 被省略或无,空白字符被删除。如果给出并且 不是 None,chars 必须是字符串;字符串中的字符将是 从调用此方法的字符串末尾剥离。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-07-17
        • 1970-01-01
        • 2016-08-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多