python 3密码检查器只会读取确切的txt文件内容

时间:2018-01-16 01:42:02

标签: python python-3.x

我的密码检查工具正在运行,但只有在用户输入与整个.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。

1 个答案:

答案 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.')