假装我正在制作电子邮件脚本。用户已经创建了用户名和密码,该用户名和密码已存储在文本文件中,以便他们可以随时登录。
用户需要能够登录。我希望python检查用户输入是否与之前相应行上的文本文件中的信息匹配。资本化并不重要。
最初创建的文本文件读取:
johncitizen
johnspassword
我的python脚本应该是这样的:
##Reads text file
guessusername = input('What is your username? ')
guesspassword = input('What is your password? ')
if guessusername.lower() = lines[0] and guesspassword = lines[1]:
##Grant access
我不介意大写错误,只要字符串本身匹配
答案 0 :(得分:0)
首先,您使用纯文本密码存储所做的事情是不明智的。你应该使用散列+腌制,或者甚至更好,选择一个合适的框架来工作,并从中学习如何做。
首先,您的数据存储格式应该更像是:
user_id<tab>username<tab>password
user_id<tab>username<tab>password
user_id<tab>username<tab>password
在这种情况下,您可以像这样读取文件:
username = ... #user input
password = ... #user input
found_user_id = None
with open('pass.txt', 'rt') as f:
for line in f:
fields = line.split("\t")
if fields[1] == username and fields[2] == password:
found_user_id = fields[0]
break
#okay, here if found_user_id is not None, then you have found them
#if it is None, then you did not find them.
确实,数据库比文本文件更有用,但这就是它的工作原理!