回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>如果这是一个非常简单的问题,我很抱歉…我对Python完全陌生,并在不断学习。在</p>
<p>一篇旧文章(<a href="https://stackoverflow.com/questions/11182558/find-all-combinations-upper-and-lower-and-symbols-of-a-word-in-python/11183901#11183901">Find all combinations (upper and lower and symbols) of a word in python</a>)展示了一种将一个输入词进行多重排列的方法。代码运行得很好,但是显示的代码只允许输入一个单词;在本例中是Password。在</p>
<p>我想使用一个文本文件,每行一个单词,作为上面链接中显示的代码段的输入,并将结果保存到一个新的文本文件中。在</p>
<p>我本以为这很简单:以只读方式打开输入文件,打开输出文件进行写入,用填充读取线()写入def并将结果写入输出文件。冲洗并重复。然而,尽管尝试了一些不同的方法和语法,我还是不能让它发挥作用。在</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 el in getAllCombinations(data): <<<Pretty sure this is where I go wrong
outfile.write(el+'\n')
</code></pre>
<p>如何获取文件每行中包含的字符串作为getAllCombinations的输入?在</p>
<p>提前感谢您的帮助!在</p>