使用Python的email.utils模块来解析电子邮件地址和名称
发布时间:2024-01-06 21:44:34
email.utils模块是Python标准库中的一个模块,提供了用于解析和操作电子邮件地址和名称的函数。
1. 解析电子邮件地址
可以使用email.utils模块的parseaddr()函数来解析电子邮件地址。该函数接受一个包含邮件地址的字符串作为参数,并返回一个元组,元组的第一个元素是地址的名称部分,第二个元素是地址的邮件部分。
示例代码:
from email.utils import parseaddr
email_address = 'John Smith <john@example.com>'
name, address = parseaddr(email_address)
print('Name:', name)
print('Address:', address)
输出结果:
Name: John Smith Address: john@example.com
2. 解析邮件名称
除了解析邮件地址外,email.utils模块还提供了解析邮件名称的函数。
可以使用email.utils模块的formataddr()函数来解析邮件名称。该函数接受一个元组作为参数,元组的第一个元素是名称部分,第二个元素是邮件部分,返回一个带有名称的电子邮件地址。
示例代码:
from email.utils import formataddr
name = 'John Smith'
address = 'john@example.com'
email_address = formataddr((name, address))
print('Email Address:', email_address)
输出结果:
Email Address: John Smith <john@example.com>
3. 解析多个邮件地址
如果要解析多个邮件地址,可以使用email.utils模块的getaddresses()函数。该函数接受一个包含多个邮件地址的字符串作为参数,并返回一个包含多个邮件地址的列表,每个邮件地址都是一个元组,元组的第一个元素是地址的名称部分,第二个元素是地址的邮件部分。
示例代码:
from email.utils import getaddresses
email_addresses = 'John Smith <john@example.com>,Jane Doe <jane@example.com>'
addresses = getaddresses(email_addresses.split(','))
for name, address in addresses:
print('Name:', name)
print('Address:', address)
输出结果:
Name: John Smith Address: john@example.com Name: Jane Doe Address: jane@example.com
总结:
使用Python的email.utils模块可以方便地解析和操作电子邮件地址和名称。通过parseaddr()函数可以解析单个邮件地址,通过formataddr()函数可以构建带有名称的电子邮件地址,通过getaddresses()函数可以解析多个邮件地址。这些函数的使用可以使电子邮件地址的解析和操作变得简单和高效。
