此任务的目的是检查 user.txt 文件中的每一行(包含一个列表 用户名和密码)
然后程序应该将输入的用户名和密码与 txt 文件中的每一行进行比较 如果没有找到任何匹配的用户名和密码,则会显示一条错误消息,如果找到,则循环应该中断
user.txt
Steve steve123
Eddie ed123
Dexter dex123
我尝试了几乎所有我能想到的事情。
尽管我几乎确信问题出在循环中。
似乎只比较txt文件中的最后一行
我对此还很陌生,所以请怜悯:)
有关如何让程序检查用户输入是否与每行文本匹配的任何提示。 另外,txt 文件可以随时更改或添加,如果不是的话,我可以使用行索引来完成此操作。
content = ""
user_List = []
while True:
print("Username")
username = input()
print("Password")
password = input()
name_pass = username + " " + password
with open("user.txt" , "r+") as f:
for line in f:
if name_pass == line:
x = False
else:
x = True
if x == False:
print("Wellcome")
break
elif x == True:
print("Incorrect Username or Password \nPlease try again")
最佳答案
问题一定是,当您迭代该行时,该行将以\n 结尾,因为在您的 txt 文件中,有一个嵌入的返回,而您看不到\n! 。要验证这一点,您可以在“for line in f”语句之后添加此语句“print(repr(line))”。 repr 函数(表示)将显示字符串而不去掉\n。 如果是这种情况,您只需这样验证:if name_pass == line[:-1],我很确定您理解最后一条语句啊哈哈;)
关于python - 如何检查 txt 文件中的每一行是否有正确的用户名和密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71661961/