我打算试着解释一下:
当你第一次运行代码时,它正确地看到该文件只是一个空格,因此它要求输入密码并将缓冲区\ n添加到该单行空间行,然后将密码写入下一行。
当你第二次运行代码时,你希望它看到缓冲区已经存在并且什么都不做。
但那不是你要检查的。 你正在检查每一行以查看缓冲区是否存在,而不是整个文件。
所以,第二次运行它:对于第一行,即“buffer \ n”,“buffer”在行中,所以它什么都不做。 对于第二行,即用户的密码,“buffer”可能不在他们的密码中。 因此它要求输入新密码并再次附加。
如果要检查文件中的“缓冲区”是否出现,有两种方法可以执行此操作。
首先,检查每一行,如果你到最后没有在任何地方找到“缓冲区”,就继续:for line in text:
if "buffer" in line:
break
else:
NewPassword = input("Create a new Password: ")
text = open("myconfig.txt", "a")
text.write("buffer \n%s" % NewPassword)
text.close()
或者,因为这个文件很容易小到足以将整个内容读入内存,所以就这样做:if "buffer" not in text.read():
NewPassword = input("Create a new Password: ")
text = open("myconfig.txt",