首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >写入文件后从文件中读取行

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

Stack Overflow用户
提问于 2017-07-02 10:49:35
回答 2查看 51关注 0票数 2

我正试着制作一个短信程序。程序要求您现在插入您的用户名和密码(并验证密码),登录后,您可以写信给其他人,也可以读取您的文件(在您创建帐户之后,程序将创建一个文本文件:.txt,并在第一行保存密码)。

如果您想在退出程序后登录,您可以这样做,因为程序只需要知道是否有一个带有您插入的用户名的.txt文件,并检查该文件的第一行以与输入(密码)进行比较。

问题是当页面不清晰(我写信给那个用户)时,我无法登录。我甚至打印第一行,它与我的输入完全匹配。有什么问题吗?

我的代码:(只是读第一行并与输入进行比较的部分)

代码语言:javascript
复制
    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

非常感谢您提前!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-02 10:54:40

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

其次,修复with语句和之后的两行之间的缩进。

第三,使用长条删除行尾的空白,就像使用raw_input时不包含空白一样。

代码语言:javascript
复制
with open(login_user+'.txt', 'r') as loginFile:
    first_line = loginFile.readline().rstrip()

string.rstrip(s,chars) 返回字符串的副本,并删除尾随字符。如果省略字符或无字符,则删除空白字符。如果给定而不是空,则字符必须是字符串;字符串中的字符将从调用此方法的字符串的末尾剥离。

票数 2
EN

Stack Overflow用户

发布于 2017-07-02 10:55:04

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44869979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档