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

Unix环境下Python2.7.5解析Outlook .msg并转存为.txt的方法

解决Python2.7.5读取.msg文件的语法错误与解析转存方案

1. 修复SyntaxError语法错误

你触发语法错误的原因是Python2.7不支持无with关键字的open(...) as f:写法,上下文管理器必须通过with触发。另外.msg是二进制格式,建议用二进制模式读取。修正后的基础代码如下:

import sys

# Python2.7必须搭配with使用as语法,同时指定二进制读取模式
with open('/usr/tsp/TRIAL/input.msg', 'rb') as f:
    print f.read()

但直接读取二进制内容会得到乱码,因为.msg是Outlook专有格式,需要专门解析工具。

2. 正确解析.msg并转存为TXT文件

Unix环境下推荐使用msg-extractor(纯Python实现,无Windows依赖)来解析.msg文件,步骤如下:

步骤1:安装兼容Python2.7的库版本

执行以下命令安装:

pip install msg-extractor==0.21.0

步骤2:解析并转存的完整代码

from extract_msg import Message

# 加载并解析.msg文件
msg = Message('/usr/tsp/TRIAL/input.msg')

# 提取核心结构化内容
subject = msg.subject
sender = msg.sender
recipient = msg.to
body_content = msg.body

# 整理为TXT格式内容
txt_output = """主题: {0}
发件人: {1}
收件人: {2}

正文内容:
{3}""".format(subject, sender, recipient, body_content)

# 写入到目标TXT文件,指定UTF-8编码避免乱码
with open('/usr/tsp/TRIAL/output.txt', 'w') as txt_file:
    txt_file.write(txt_output.encode('utf-8'))

代码说明

  • extract_msg.Message会解析.msg的内部结构,直接提取主题、发件人、正文等可读内容,无需处理二进制乱码。
  • 若需提取抄送、附件等其他字段,可使用msg.cc(抄送列表)、msg.attachments(附件对象列表)等属性。
  • 若.msg包含HTML格式正文,可用msg.htmlBody获取HTML内容,再通过BeautifulSoup(需安装beautifulsoup4==4.9.3版本)转换为纯文本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 18:15:36