You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何简化Python提取Excel邮箱代码并跳过转CSV步骤?

直接从Excel提取所有邮箱地址(无需转CSV)

下面是简化后的实现代码,直接处理Excel文件,跳过CSV中转,同时兼容多列邮箱、空值场景:

import pandas as pd
import re

# 正则表达式匹配常见邮箱格式
EMAIL_PATTERN = re.compile(r"[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+")

# 直接读取Excel文件
df = pd.read_excel("Email_List.xlsx")

# 收集所有有效邮箱
all_emails = []
# 遍历所有非空单元格内容(stack()自动过滤空值)
for cell_content in df.stack().astype(str):
    # 提取当前单元格内的所有邮箱
    matched_emails = EMAIL_PATTERN.findall(cell_content)
    if matched_emails:
        all_emails.extend(matched_emails)

# 去重后输出结果
unique_emails = list(set(all_emails))
for email in unique_emails:
    print(email)

关键优化说明

  • 省去CSV中转步骤:直接通过pandas读取Excel并处理,避免生成中间文件,提升流程效率。
  • 自动处理空值:df.stack()方法默认会丢弃空值单元格,无需额外编写空值判断逻辑。
  • 适配任意列结构:遍历所有单元格的方式,不管邮箱分布在多少列,都能全部提取,无需关心表格格式。
  • 去重避免重复群发:用集合对提取到的邮箱去重,防止同一邮箱被多次提取。
  • 更精准的正则匹配:调整正则表达式,避免误匹配邮箱末尾的多余标点(如逗号、句号)。

可选:保存结果到文件

如果需要把提取的邮箱保存到本地文件,可添加以下代码:

# 将去重后的邮箱保存为文本文件
with open("extracted_emails.txt", "w", encoding="utf-8") as f:
    f.write("\n".join(unique_emails))

内容的提问来源于stack exchange,提问作者Aaron Vos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 22:40:33