您好我已经创建了一些打印密码突变的代码。但是,我无法从具有大量常用密码的文本文件中读取多个密码。这是我的代码:
from itertools import product
for password in commonpasswords:
allPossible = list(mapping[letter] for letter in password)
我不确定为什么我会收到错误,我基本上希望它一次读取文本文件中的每个条目1行,尽可能多地执行它的突变然后转到下一个。该文件仅包含小写单词,每个条目位于单独的行中。感谢。
编辑:我也无法创建总数,我在循环结束时添加了此代码,删除了两个打印功能:total = total + len(allPossible)
print(total)
然而,这似乎不起作用,突变的总数是I< m;之后的数字。感谢。
答案 0 :(得分:3)
每当你从文件中读取任何一行时,它会在结束时自动选择\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)))
所能做的最后一个字。
答案 1 :(得分:2)
for password in commonpasswords:
password = password.rstrip('\n')