Python parseaddr怎么用,如何解析邮箱地址?

Python email.utils.parseaddr 详解

parseaddr 是 Python 标准库 email.utils 模块中的一个实用函数,专门用于解析电子邮件地址字符串,它能够将包含姓名和邮箱地址的组合字符串拆分为一个元组。

基本功能

在电子邮件系统中,地址经常以 "Real Name <email@example.com>" 的格式出现。parseaddr 的作用就是将这种格式的字符串解析为两个部分:真实姓名 (Real Name) 和 电子邮件地址 (Email Address)。

Python批量读取邮件,整理数据,解放你的时间
加载中
Python批量读取邮件,整理数据,解放你的时间

语法与返回值

语法:

from email.utils import parseaddr
result = parseaddr(address_string)

返回值:
返回一个包含两个元素的

Python parseaddr怎么用,如何解析邮箱地址?

元组 (Tuple):(realname, email_address)。

  • realname: 提取出的姓名部分(如果没有则为空字符串)。
  • email_address: 提取出的纯邮箱地址部分。

代码示例

以下是 parseaddr 处理不同输入场景的示例:

from email.utils import parseaddr
# 场景 1:标准格式(姓名 + 邮箱)
addr1 = "Zhang San <zhangsan@example.com>"
print(f"输入: {addr1} -> 解析结果: {parseaddr(addr1)}") 
# 输出: ('Zhang San', 'zhangsan@example.com')
# 场景 2:仅有邮箱地址
addr2 = "lisi@example.com"
print(f"输入: {addr2} -> 解析结果: {parseaddr(addr2)}") 
# 输出: ('', 'lisi@exa

Python parseaddr怎么用,如何解析邮箱地址?

mple.com') # 场景 3:包含引号的姓名 addr3 = '"Wang Wu" <wangwu@example.com>' print(f"输入: {addr3} -> 解析结果: {parseaddr(addr3)}") # 输出: ('Wang Wu', 'wangwu@example.com') # 场景 4:非法或空字符串 addr4 = "invalid-address" print(f"输入: {addr4} -> 解析结果: {parseaddr(addr4)}") # 输出: ('', 'invalid-address')

核心要点总结

  • 自动去引号:如果姓名部分被双引号包裹(如 "John Doe"),parseaddr 会自动去除引号,只保留纯文本。
  • 容错性:即使输入不符合标准的 RFC 格式,它也不会抛出异常,而是尽可能地尝试解析,无法解析的部分会返回空字符串。
  • 适用场景

    Python parseaddr怎么用,如何解析邮箱地址?

    :

    • 处理邮件头(Headers)中的 From 或 To 字段。
    • 从用户输入中提取纯邮箱地址以进行数据库存储。
    • 清洗包含多样化格式的联系人列表。

注意事项

  • 验证能力有限:parseaddr 仅用于解析(Parsing),而不是验证(Validation),它不会检查邮箱地址是否符合真实的语法规范(例如是否包含 符号),如果需要验证邮箱合法性,建议使用正则表达式或第三方库如 email-validator。
  • 编码问题:对于包含非 ASCII 字符(如中文)的编码地址,建议结合 email.header.decode_header 一起使用,以确保正确处理字符集。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/492446.html

赞 (0)
Python中open函数怎么用?Python读取txt文件的方法有哪些?
上一篇 2026年7月13日 22:38
服务器1U尺寸是多少,1U服务器高度是多少厘米?
下一篇 2026年7月13日 22:41

相关推荐

  • LOL大洋洲服务器到底在哪些地区,怎么登录?

    英雄联盟大洋洲服务器主要部署在澳大利亚悉尼和墨尔本的核心数据中心,同时覆盖新西兰奥克兰的辅助节点,由持牌IDC服务商提供本地化运营支持,大洋洲服务器的具体地理位置悉尼:核心枢纽与第一入口大多数玩家连接大洋洲服务器时,数据包的第一跳往往落在悉尼,Riot Games官方在公开的运维白皮书中明确,悉尼的Equini……

    2026年8月7日
    800
  • 常见的服务器CPU型号都有哪些,怎么选?

    在服务器领域,最常见的CPU型号主要来自Intel Xeon系列和AMD EPYC系列,覆盖从入门级到高端的各种计算需求,实际部署中多数企业会选择最新一代的Xeon Platinum或EPYC 9004系列,Intel Xeon系列:市场主力Intel Xeon系列长期占据服务器CPU市场的主导地位,型号命名规……

    2026年8月20日
    1200
  • 体系结构服务器究竟有哪些,常见类型有哪些?

    体系结构服务器的核心分类,按指令集可分为CISC(复杂指令集)、RISC(精简指令集)和EPIC(显式并行指令集)三大类,其中x86架构服务器占据市场主导地位,ARM架构正以较快速度崛起,选择哪种体系结构,直接决定了服务器的计算效率、能耗比和采购成本,本文基于行业白皮书与公开技术文档,梳理各类服务器的适用场景……

    2026年8月30日
    400
  • 负载均衡如何提升性能?高可用集群方案解析

    服务器的负载均衡是现代IT架构中不可或缺的核心技术,其核心特点在于通过智能分配网络或应用流量到后端多台服务器,实现高可用性、可扩展性、性能优化、安全增强以及会话管理, 这些特点共同构成了支撑高并发、高稳定在线服务的基础, 核心特点:构建稳健服务的基石高可用性(High Availability):核心机制: 负……

    2026年2月10日
    14300
  • 服务器插件mp是什么意思?服务器插件mp怎么安装使用

    服务器插件MP是提升游戏服务器性能与功能扩展的核心工具,其价值在于通过模块化设计解决高并发场景下的资源调度难题,同时为开发者提供灵活的API接口,以下从技术原理、应用场景、优化方案三个维度展开分析,核心价值:性能与扩展性的平衡服务器插件MP通过动态加载机制,将功能模块与主程序解耦,降低内存占用率,测试数据显示……

    2026年3月8日
    12500
  • 哪些服务器自带固态硬盘,固态硬盘服务器哪个好?

    目前市面主流“带固态的服务器”分为三类:物理裸机SSD版、云服务器全SSD实例、以及混合存储高IO版,无论哪种形态,本质都是将SATA/SAS机械盘替换为SATA SSD、NVMe SSD或傲腾持久内存,以解决数据库并发和随机读写瓶颈,带固态的服务器到底指什么很多用户把“带固态的服务器”理解成“在服务器里装一块……

    2026年9月15日
    200
  • 服务器年费入哪个科目?服务器年费会计分录怎么做

    企业支付的服务器年费,在会计实务中应依据费用性质及企业规模,通常计入“管理费用”或“主营业务成本”科目,对于大多数非互联网技术型企业,服务器主要用于企业内部办公、数据存储或网站运营,最核心的处理方式是计入“管理费用-办公费”或“管理费用-网络服务费”;而对于将服务器租赁作为核心业务的技术型公司,则应计入“主营业……

    2026年3月30日
    11300
  • 服务器掉盘怎么解决?服务器硬盘掉线恢复方法

    服务器掉盘的核心解决路径遵循“先软后硬、先静后动”的原则,绝大多数掉盘故障并非硬盘物理损坏,而是由链路不稳定、固件Bug或文件系统错误引发的软故障,首要操作是立即停止写入操作,通过系统日志定位故障代码,优先尝试在线恢复或软重启,最后才进行物理更换与数据恢复,盲目插拔或强制上线极易导致数据永久丢失,专业运维人员必……

    2026年3月14日
    15700
  • Java规则引擎怎么设计?规则引擎java设计实战

    Java规则引擎设计的核心在于将业务逻辑与代码解耦,通过Drools、LiteFlow或自研DSL实现动态配置,从而在应对高频变更时降低维护成本并提升系统扩展性,在传统的Java开发中,业务逻辑往往硬编码在Service层,一旦需求变更,比如调整风控阈值或修改促销折扣算法,开发者必须修改代码、重新编译、测试并部……

    2026年7月7日
    10900
  • 服务器异常状态码有哪些,常见的服务器错误代码大全

    服务器异常状态码是网站运维与SEO优化中必须直面的核心信号,其本质是服务器与客户端之间通信状态的反馈,核心结论在于:正确识别并处理这些状态码,不仅关乎用户体验,更是维持网站搜索引擎排名、保障业务连续性的生命线, 每一个异常代码背后,都隐藏着具体的技术故障或配置错误,唯有精准诊断并实施针对性解决方案,才能将流量损……

    2026年3月24日
    9800

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注