擅长:python、mysql、java
<p>在听取了帕特里克·卡罗尔、pzp和本·格雷厄姆的建议后(谢谢你的回复!)!!我肯定会看看你提出的一些改进代码的方法。)经过反复试验,我发现我最初的尝试并没有太大的错误,我自己至少有一次成功了,除了一个小问题。在</p>
<p>我输入单词表中的每个单词都在自己的行上。当Python读取文件时,它将不可见的'\n'控制字符作为单词的一部分,例如alpha变成alpha\n。这个控制字符使Python函数异常。通过插入一行新行并使用rstrip(),我能够纠正问题,代码运行得非常完美。在</p>
<p>以下是最终修改后的代码(原始代码全部归功于@moose):</p>
<pre><code>#!/usr/bin/python
# -*- coding: utf-8 -*-
from itertools import product
def getAllCombinations(password):
leet = ["Aa@","Bb","Cc", "Dd","Ee","Ff","Gg","Hh","Ii","Jj","Kk",
"Ll","Mm","Nn","Oo0","Pp","Qq","Rr","Ss5","Tt","Uu","Vv",
"Ww","Xx","Yy","Zz"]
getPlaces = lambda password: [leet[ord(el.upper()) - 65] for el in password]
for letters in product(*getPlaces(password)):
yield "".join(letters)
with open("wordlist_in.txt", "r") as infile, open("wordlist_out.txt", "w") as outfile:
data = infile.readlines()
for line in data:
line=line.rstrip('\n')
for el in getAllCombinations(data):
outfile.write(el+'\n')
</code></pre>
<p>编码愉快</p>
<p>隐居</p>