[英]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.