我正在编写一个程序,该程序获取电子邮件列表并根据密码列表进行检查。不是像需要多处理器引擎之类的大型蛮力程序之类的大东西,只是需要学习的基本知识。
运行程序后,它会根据电子邮件列表中的电子邮件列表中的第一封电子邮件检查列表中的所有密码。我尝试使用不同的功能来处理它,包括一些丑陋的冗长,但它都是一样的。
E-mail List Tester
NB: This is for educational purpose only.
import sys
import imaplib
EMAILS_FILE = open('email_list.txt', 'r')
PASSWORD_FILE = open('pass_list.txt', 'r')
SUCCESS_FILE = open('success.txt', 'a')
EMAILS_FILE_LIST = []
def set_check(_emails):
email = str(_emails)
for passwords in PASSWORD_FILE:
password = str(passwords)
print "E-mail: %snPassword: %s" % (email,password)
for emails in EMAILS_FILE:
EMAILS_FILE_LIST.append(emails)
for email_count in range(0, len(EMAILS_FILE_LIST)):
set_check(EMAILS_FILE_LIST[email_count])
我希望列表中的每封电子邮件都针对密码列表中的所有密码进行测试,然后转到下一封电子邮件和下一封电子邮件,直到它到达最后。但它所做的只是检查列表中的第一封电子邮件并停止。
在 Python 中,EMAILS_FILE
和 PASSWORD_FILE
等文件对象有一个"指针",指示它们在文件中的位置。 从文件中读取数据时,指针在文件中继续移动。 因此,如果您从文件中读取一行,指针就会移动到下一行的开头。
在PASSWORD_FILE
中运行一次密码后,密码文件的文件指针将指向文件的末尾。 如果尝试再次运行密码文件,将不会得到任何结果,因为指针已位于文件末尾,因此没有更多密码可供读取。
最简单的解决方法是在行PASSWORD_FILE.seek(0)
正上方添加一行for passwords in PASSWORD_FILE:
。 这可确保PASSWORD_FILE
中的文件指针重置回文件的开头。
循环中插入_emails
。对于每封电子邮件进行每个密码。这意味着指数循环。希望这有帮助
def set_check(_emails):
for email in _emails:
email = str(_emails)
for passwords in PASSWORD_FILE:
password = str(passwords)
print "E-mail: %snPassword: %s" % (email,password)