python读取eml文件并用正则匹配邮箱
今天接到一个需求有一个同事离职了,但是留下了非常多(2W多封)的邮件,我需要将他的邮件进行分类,只要邮件中以@xxx.com结尾的存放在文件夹中(下图名叫【是】的文件夹),否则放在另一个文件夹中(下图名叫【否】的文件夹)。
目录结构
代码注意事项
import email(我发现是内置模块,不用安装)
下面是注意事项(就当是注释吧!!!!)
1、提取包含一下后缀的邮箱,我用了split(“@”),所以不用写 @
e_a = [‘Honeywell.com’, ‘honeywell.com’, ‘garrettmotion.com’, ‘HONEYWELL.COM’, ‘resideo.com’]
2、提取,收件人、发件人、抄送人的邮箱(这个是可以不写的,但是我这个代码是借鉴的,没找到提取全部内容的函数,只找到提取内容的函数,所以加上了下面的代码)
fjr = email.utils.parseaddr(msg.get(“from”))[1]
sjr = email.utils.parseaddr(msg.get(‘to’))[1]
csr = email.utils.parseaddr(msg.get(‘cc’))[1]
print(“发件人”, fjr)
print(“收件人”, sjr)
print(“抄送人”, csr)3、将eml文件内容与收件人、发件人、抄送人拼接,并且加 " " 间隔,不加会有些小问题
text = text + " " + fjr + " " + " " + " " + " " + sjr + " " + " " + csr
4、正则匹配邮箱
prog = re.compile(r’[a-zA-Z0-9_.±]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+')
res = prog.findall(text)5、移动文件 os.remove()
完整代码
import email
import os
import re
from email import policy
from email.parser import BytesParsere_a = ['Honeywell.com', 'honeywell.com', 'garrettmotion.com', 'HONEYWELL.COM', 'resideo.com']
for f in os.listdir("./数据源/"):# print(f)text = ""with open("./数据源/" + f, 'rb') as fp:msg = BytesParser(policy=policy.default).parse(fp)fjr = email.utils.parseaddr(msg.get("from"))[1]sjr = email.utils.parseaddr(msg.get('to'))[1]csr = email.utils.parseaddr(msg.get('cc'))[1]print("发件人", fjr)print("收件人", sjr)print("抄送人", csr)if msg.get_body(preferencelist=('plain'))==None:text = text + " " + fjr + " " + " " + " " + " " + sjr + " " + " " + csrelse:text = msg.get_body(preferencelist=('plain')).get_content()text = text + " " + fjr + " " + " " + " " + " " + sjr + " " + " " + csr# print(text)prog = re.compile(r'[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+')res = prog.findall(text)for e in res:res1 = e.split("@")[1]if res1 in e_a:print(f, "在")ori = "./数据源/" + fnow = "./是/" + fos.rename(ori, now)breakelse:ori = "./数据源/" + fnow = "./否/" + fos.rename(ori, now)print(f, "不在")
希望对大家有帮助
致力于办公自动化的小小程序员一枚
致力于写出清楚的博客
都看到这了,关注+点赞+收藏=不迷路!!
python读取eml文件并用正则匹配邮箱相关推荐
- python读取文件某一行-使用python读取.text文件特定行的数据方法
如何用python循环读取下面.txt文件中,用红括号标出来的数据呢? 首先,观察数据可知,不同行的第一个数据元素不一样,所以考虑直接用正则表达式. 再加上,对读和写文件的操作,就行了 注:我用的是p ...
- python读取文件多行内容-使用python读取.text文件特定行的数据方法
如何用python循环读取下面.txt文件中,用红括号标出来的数据呢? 首先,观察数据可知,不同行的第一个数据元素不一样,所以考虑直接用正则表达式. 再加上,对读和写文件的操作,就行了 注:我用的是p ...
- python读取.edf文件
目录 EDF文件简介 MNE-python读取.edf文件 案例 第一步:导入工具包 第二步:加载本地edf文件 第三步:获取原始数据中事件 第四步:根据事件ID获取对应事件 第五步:绘制事件图 本教 ...
- Windows上python读取grib2文件(不用Linux)
最近在网上下载的NCEP的fnl数据,发现只有grib2文件格式.因为现在处理数据使用的更多的是python,matlab一类的.网上一搜python读取grib文件需要依赖pygrib库,pygri ...
- python获取word页数_python,_如何在 Linux 上使用 Python 读取 word 文件信息(如页数)?,python - phpStudy...
如何在 Linux 上使用 Python 读取 word 文件信息(如页数)? R.T. doc 是二进制文件,Python 如何进行读取呢? .docx 可用 python-docx 读取,但如何读 ...
- python读取grib文件_Windows下Python读取GRIB数据
之前写了一篇<基于Python的GRIB数据可视化>的文章,好多博友在评论里问我Windows系统下如何读取GRIB数据,在这里我做一下说明. 一.在Windows下Python为什么无法 ...
- python读取log文件_python文件读写(一)-txt, log, json, csv, xml文件
1.概述在平时自动化测试工作中,经常会用python对一些文件进行读写操作.其中使用最多的文件格式,就是txt, log, json, csv, xml, zip, tar, gz, ra ...
- python 读取excel文件 效率 时间 格式_python读取Excel文件中的时间数据
在使用python读取Excel文件中的时间格式,碰到的时间格式转换问题: 读取这样的表格: 输出这样的数据结果: 然而这样的结果却不是我们想要的,我们需要的是这样的结果: 1.安装python官方库 ...
- python读取一个文件夹/子文件夹下的所有文件名字
python读取一个文件夹/子文件夹下的所有文件名字 示例代码: import osfile_path = './images/' all_file_name = os.listdir(file_pa ...
- Python使用re模块进行正则匹配日期和时间
Python使用re模块进行正则匹配日期和时间 目录 Python使用re模块进行正则匹配日期和时间 日期匹配 时间匹配 日期匹配 #导入需要的正则匹配的re包 # Load regex packag ...
最新文章
- 电脑要什么配置好_学平面设计用什么电脑比较好?对配置要求高吗?
- java 泛型 extends 多个
- HDU4324(强连通的Tarjan算法)
- Redis的常用功能
- Python中判断字符串中是否包含另一个字符串
- 2 环境设置_用友U8V10.1安装(Windows 7环境)
- Django APIView源码解析
- perl 如何判断变量为空
- net异步线程获取返回值的三种方式
- JDK源码阅读调试环境搭建
- docker安装mssql
- 您的好友邀请您加入群聊~
- 【第59篇】MetaFormer实际上是你所需要的视觉
- Promodel®模拟和优化套装加速企业绩效改善 功能介绍
- autoCAD 设置 AutoCAD 系统配置
- 【CSS 教程系列第 3 篇】CSS 如何添加注释
- linux kernel --- checksum相关ip_summed和feature字段解释
- 开课吧 Linux与基础系统编程
- 天津地铁行业建设现状与运营状况分析报告2022版
- DeFi:解决 EIP-4626 中的滑点问题