嗨,我创建了一些打印密码突变的代码。但是,我无法让它从包含许多常见密码的文本文件中读取多个密码。这是我的代码:
from itertools import product
for password in commonpasswords:
allPossible = list(mapping[letter] for letter in password)
我不确定为什么我会收到错误,我基本上希望它一次读取文本文件中的每个条目 1 行,执行尽可能多的突变,然后移动到下一个条目。该文件仅包含小写单词,每个条目都在单独的行上。谢谢。
编辑:我在创建总计时也遇到问题,我在循环末尾添加了此代码,删除了两个打印功能:
total = total + len(allPossible)
print(total)
然而,这似乎不起作用,突变的总数就是我想要的数字。谢谢。
每当你从文件中读取任何一行时,它会自动拾取吃完结尾的n
字符。因此,您必须先剥离n
。添加一行,password.strip('n')
在循环的开头,例如
for password in commonpasswords:
password = password.strip('n')
(或者因为它总是你可以做的最后一个词password[:-1]
就像allPossible = list(product(*([letter] + mapping[letter] for letter in password[:-1)))
一样)
for password in commonpasswords:
password = password.rstrip('n')