我的密码检查工具正在运行,但只有在用户输入与整个.txt文件相同时才会解析。
如何在.txt文件中放入多个密码,如果其中任何一个与输入匹配,我的程序是否可用?我希望能够添加密码123456,以便我的第二个if语句可以工作。
#simple program to check passwords against a txt file database passwordfile = open('secretpasswordfile.txt') secretpassword = passwordfile.read() print('Enter your password.') typedpassword = input() if typedpassword == secretpassword: print('Access granted.') if typedpassword == '123456': print('This password is not secure.') else: print('Access denied.')
secretpasswordfile.txt只写入了genericpassword。
答案 0 :(得分:1)
假设文件中的每个密码都用换行符分隔,您可以检查它们中的任何一个是否与此代码匹配。它使用以下事实:您可以将open
返回的文件对象视为文件中每行的迭代器,并将键入的密码与这些行中的每一行进行比较。 .strip()
是从每一行拉出尾随换行符。
passwordfile = open('secretpasswordfile.txt')
print('Enter your password.')
typedpassword = input()
if any(typedpassword == pw.strip() for pw in passwordfile):
print('Access granted.')
if typedpassword == '123456':
print('This password is not secure.')
else:
print('Access denied.')