【发布时间】:2012-02-28 05:51:14
【问题描述】:
我正在尝试解析电子邮件地址列表以删除用户名和“@”符号,只留下域名。
例如:blahblah@gmail.com 所需输出:gmail.com
我用下面的代码完成了这个:
for row in cr:
emailaddy = row[0]
(emailuser, domain) = row[0].split('@')
print domain
但我的问题是当我遇到格式不正确的电子邮件地址时。例如,如果该行包含“aaaaaaaaa”(而不是有效的电子邮件地址),则程序会因错误而崩溃
(emailuser, domain) = row[0].split('@')
ValueError: need more than 1 value to unpack.
(如您所料)与其检查所有电子邮件地址的有效性,我宁愿不更新获取域并继续下一条记录。如何正确处理此错误并继续前进?
所以对于列表:
blahblah@gmail.com
mmymymy@hotmail.com
youououou
nonononon@yahoo.com
我希望输出是:
gmail.com
hotmail.com
yahoo.com
谢谢!
【问题讨论】:
-
请注意,验证电子邮件的唯一安全方法是将电子邮件发送到要求帐户持有人验证他们已收到电子邮件的地址。
-
请注意,根据电子邮件规范,几个@ 是完全可以的。所以做
rfind("@")之类的东西要明智得多..
标签: python