我有一个server_list
,我正在从文件中解析电子邮件地址。我想收集并非来自某些服务器(例如gmail.com)的所有地址。
目前,我在文件读取循环中包含以下内容:
server_list = ["gmail.com", "yahoo.com"] #etc
for servers in server_list:
if servers in emailaddress: #get emailaddress from inside of a open(file) line loop
badmail.extend(emailaddress)
这使我可以将不良电子邮件收集到一个列表中badmail
。有什么方法可以创建一个好邮件列表,即如果emailaddress
不在server_list
同一循环中的任何项目中,或者我是否必须创建所有电子邮件的列表并删除不良电子邮件?
您可以使用all
function来确保emailaddress不以中的任何服务器结尾server_list
,例如
server_list, good_email = ["gmail.com", "yahoo.com"], []
if all(not emailaddress.endswith(server) for server in server_list):
good_email.append(emailaddress)
同样,您可以使用any
函数获取错误的电子邮件地址,如下所示
server_list, bad_email = ["gmail.com", "yahoo.com"], []
if any(emailaddress.endswith(server) for server in server_list):
bad_email.append(emailaddress)
看起来您正在从文件中读取电子邮件地址。所以,你可以做这样的事情
server_list, good_list, bad_list = ["gmail.com", "yahoo.com"], [], []
with open("email.txt") as in_file:
for email_address in in_file:
email_address = email_address.rstrip()
if any(email_address.endswith(server) for server in server_list):
bad_list.append(email_address)
else:
good_list.append(email_address)
根据lvc
建议,我们实际上可以将一组数据传递给str.endswith
。因此,可以将代码进一步简化为
server_list, good_list, bad_list = ("gmail.com", "yahoo.com"), [], []
...
...
if email_address.endswith(server_list):
bad_list.append(email_address)
else:
good_list.append(email_address)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句