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

如何在提取MSG邮件附件时重命名并添加日期后缀?

解决MSG附件重命名并添加邮件日期的问题

要实现给附件添加邮件日期重命名,你需要正确拆分原附件文件名、构造新文件名,并在save()方法中正确传入filename参数。以下是修改后的代码:

import extract_msg
import dateutil.parser as dparser
from os.path import join, splitext

email_path = ... # 邮件文件存放路径
save_path = ... # 附件保存路径

for file in files:
    path = join(email_path, file)
    msg = extract_msg.Message(path)
    # 解析邮件日期并格式化(避免文件名含非法字符)
    date = dparser.parse(msg.date).strftime("%m-%d-%Y")
    
    for f in msg.attachments:
        # 拆分原文件名的名称和扩展名
        original_name, ext = splitext(f.longFilename)
        # 构造新文件名:原名称_日期.扩展名
        new_filename = f"{original_name}_{date}{ext}"
        # 保存时指定自定义路径和新文件名
        f.save(customPath=save_path, filename=new_filename)

关键说明:

  • 使用splitext()拆分原文件名,确保保留正确的文件扩展名
  • 直接用strftime("%m-%d-%Y")生成日期格式,无需额外替换/,更简洁
  • save()方法的filename参数需要传入完整的新文件名(含扩展名),才能覆盖原文件名
  • 优先使用f.longFilename获取附件的完整文件名,比shortFilename更准确

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 10:30:52