繁体   English   中英

文本不会 append in.txt 文件 - Python

[英]Text won't append in .txt file - Python

所以我刚开始学习 python 并尝试了一个包含登录系统的小项目。 我希望将用户名和密码保存到 .txt 文件中,但它们不会,我无法找出错误。 问题必须发生在我定义的注册函数中,因为登录使用我手动引入的用户名和密码就可以正常工作。

def register():
    user = input("Registration page\nUSERNAME:")
    users = open("users.txt", "r")
    if user in users:
        print("That user already exists!")
        login()
        users.close()
    else:
        pwrds = open("pass.txt", "a")
        users = open("users.txt", "a")
        users.write("\n" + user)
        p1 = input("PASSWORD:")
        p2 = input("CONFIRM PASSWORD:")
        if p1 == p2:
            pwrds.write("\n" + p1)
            login()
            users.close()
            pwrds.close()
        else:
            print("Failed password confirmation, restarting")
            register()
            users.close()
            pwrds.close()

提前感谢您的帮助!

当您检查文件 object ( users ) 中的字符串包含 ( user in ) 时,您总是得到False ,因为每一行都附加了转义的换行符 '\n'。

此外,您尝试打开文件两次。 做这种事没有意义。 您可以从头开始传递'r+'参数来打开它。

请注意, 'r+'方法会将 cursor 的初始 position 放在文件的开头,但是由于我们正在调用read()方法,因此现在允许将 Z1791A97A8403730EE0760489A2EZ 设置为文件的结尾我们把新用户写在最后一个position吧。

我会这样做如下:

def register():
    user = input("Registration page\nUSERNAME:")
    file = open("users.txt", "r+")
    users = file.read().splitlines() # considering you are saving the users one by one, in each line.
    if user in users:
        print("That user already exists!")
        users.close()
        login()
    else:
        pwrds = open("pass.txt", "a")
        users.write("\n" + user)
        users.close()
        p1 = input("PASSWORD:")
        p2 = input("CONFIRM PASSWORD:")
        if p1 == p2:
            pwrds.write("\n" + p1)
            pwrds.close()
            login()
        else:
            print("Failed password confirmation, restarting")
            pwrds.close()
            register()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM