使用 python eml-parser 对 eml文件进行格式化

python下有个工具是可以对eml文件进行格式化的,介绍在这里

 https://pypi.python.org/pypi/eml-parser

首先要安装包,如果你设置了全局环境变量的话,只需要cmd下执行就可以,如果没有设置全局变量,首先要切换到你python的安装目录,然后再切换到scripts目录,执行

 pip install eml-parser

当你看到这个提示时,说明安装成功

Successfully installed cchardet-2.1.1 eml-parser-1.8 file-magic-0.3.0 python-dateutil-2.6.1 six-1.11.0 typing-3.6.4

这个时候,可以来试验一下是否可用。发现报错,于是到项目地址下载源码包查看,发现支持的版本有

  classifiers=['Development Status :: 5 - Production/Stable',
'License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)',
'Intended Audience :: Developers',
'Operating System :: OS Independent',
'Programming Language :: Python :: 3.4',
'Programming Language :: Python :: 3.5',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: Implementation :: CPython',
'Topic :: Communications :: Email'
],

重新下载正确版本,重复以上步骤,重复以上步骤后,我发现依然报错,官方提示是OSX系统才需要安装libmagic,后来我在python3.6.0环境下,先后安装python-magic和libmagic,再安装eml-parser, 执行import eml_parser才没有报错,那下面来实验一下是否可用

import eml_parser
import json
import datetime

def json_serial(obj):
    if isinstance(obj, datetime.datetime):
        serial = obj.isoformat()
        return serial


with open('t.eml', 'rb') as fhdl:
    raw_email = fhdl.read()

parsed_eml = eml_parser.eml_parser.decode_email_b(raw_email)

print(json.dumps(parsed_eml, default=json_serial))

成功输出json格式化后的eml文件数据

此条目发表在python分类目录,贴了, , 标签。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用*标注