from email.utils import getaddresses
addrstring = ',friend@email.com, John Smith <john.smith@email.com>,"Smith, Jane" <jane.smith@uconn.edu>,'
def addrparser(addrstring):
addrlist = ['']
quoted = False
# ignore comma at beginning or end
addrstring = addrstring.strip(',')
for char in addrstring:
if char == '"':
# toggle quoted mode
quoted = not quoted
addrlist[-1] += char
# a comma outside of quotes means a new address
elif char == ',' and not quoted:
addrlist.append('')
# anything else is the next letter of the current address
else:
addrlist[-1] += char
return getaddresses(addrlist)
print addrparser(addrstring)
我自己还没有使用过它,但在我看来,您可以很容易地使用csv包来解析数据。在
下面的内容完全没有必要。我写它之前意识到您可以传递
getaddresses()
一个包含一个包含多个地址的字符串的列表。我还没有机会查看电子邮件头中地址的规范,但是根据您提供的字符串,此代码应该可以将其拆分为一个列表,确保忽略引号内的逗号(因此也是名称的一部分)。在
给出:
^{pr2}$我很想看看其他人会怎么处理这个问题!在
有很多函数可以作为标准的python模块使用,但是我认为您正在寻找 email.utils.parseaddr()或email.utils.getaddresses()
相关问题 更多 >
编程相关推荐