KeyError:' \ n' Python,String Mutation Generator

时间:2015-01-21 14:25:09

标签: python

您好我已经创建了一些打印密码突变的代码。但是,我无法从具有大量常用密码的文本文件中读取多个密码。这是我的代码:

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;之后的数字。感谢。

2 个答案:

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