在一个名为“的文件中”电子邮件.txt“我几乎没有这种格式的帐户-email:pw
。
我已经完成了split,一切都很完美,但前提是列表中只有一个account:pw
。你知道吗
如果我放了2个或更多,我的第一个帐户登录失败。你知道吗
下面是代码(不包括登录名和功能)
with open('emails.txt') as emails:
for line in emails:
EMAIL_ACCOUNT = line.split(":", -2)[-2]
PASSWORD = line.split(":", 1)[1]
print(PASSWORD)
EMAIL_FOLDER = "INBOX"
M = imaplib.IMAP4_SSL('imap.gmx.com')
try:
rv, data = M.login(EMAIL_ACCOUNT, PASSWORD)
except imaplib.IMAP4.error:
print("Failed!" + EMAIL_ACCOUNT)
sys.exit(1)
time.sleep()
M.logout()
我该怎么做才能做到:
因为您没有提供示例
emails.txt
文件,所以我将尝试猜测实际发生的情况。 抱歉,如果这是错误的!你知道吗注意,
for line in emails:
中的行确实包含尾部换行符。 也许在编辑时没有在最后一行的末尾插入换行符(这可能会导致以后的自动化问题,但这不是重点)。你知道吗因此,当您有一个文件
email1:password1
(密码后没有换行符)时,一切都很好。 当您有一个文件email1:password1\nemail2:password2
(这里,\n
是换行符)时,您的程序会将第一封电子邮件的密码视为password1\n
,而不仅仅是password1
。你知道吗删除尾随换行符的一种方法是使用
strip()
函数,如:PASSWORD = line.split(":", 1)[1].strip()
。你知道吗此外,遵循“一行是以换行符结尾的东西”的定义也是一个好习惯,即在最后一行之后再加一个换行符。这可以实现一致性,简化自动化,并删除角情况。但我离题了。
相关问题 更多 >
编程相关推荐