今天接到一个需求有一个同事离职了,但是留下了非常多(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文件并用正则匹配邮箱相关推荐

  1. python读取文件某一行-使用python读取.text文件特定行的数据方法

    如何用python循环读取下面.txt文件中,用红括号标出来的数据呢? 首先,观察数据可知,不同行的第一个数据元素不一样,所以考虑直接用正则表达式. 再加上,对读和写文件的操作,就行了 注:我用的是p ...

  2. python读取文件多行内容-使用python读取.text文件特定行的数据方法

    如何用python循环读取下面.txt文件中,用红括号标出来的数据呢? 首先,观察数据可知,不同行的第一个数据元素不一样,所以考虑直接用正则表达式. 再加上,对读和写文件的操作,就行了 注:我用的是p ...

  3. python读取.edf文件

    目录 EDF文件简介 MNE-python读取.edf文件 案例 第一步:导入工具包 第二步:加载本地edf文件 第三步:获取原始数据中事件 第四步:根据事件ID获取对应事件 第五步:绘制事件图 本教 ...

  4. Windows上python读取grib2文件(不用Linux)

    最近在网上下载的NCEP的fnl数据,发现只有grib2文件格式.因为现在处理数据使用的更多的是python,matlab一类的.网上一搜python读取grib文件需要依赖pygrib库,pygri ...

  5. python获取word页数_python,_如何在 Linux 上使用 Python 读取 word 文件信息(如页数)?,python - phpStudy...

    如何在 Linux 上使用 Python 读取 word 文件信息(如页数)? R.T. doc 是二进制文件,Python 如何进行读取呢? .docx 可用 python-docx 读取,但如何读 ...

  6. python读取grib文件_Windows下Python读取GRIB数据

    之前写了一篇<基于Python的GRIB数据可视化>的文章,好多博友在评论里问我Windows系统下如何读取GRIB数据,在这里我做一下说明. 一.在Windows下Python为什么无法 ...

  7. python读取log文件_python文件读写(一)-txt, log, json, csv, xml文件

    1.概述在平时自动化测试工作中,经常会用python对一些文件进行读写操作.其中使用最多的文件格式,就是txt,  log,  json,  csv,  xml,  zip, tar, gz,  ra ...

  8. python 读取excel文件 效率 时间 格式_python读取Excel文件中的时间数据

    在使用python读取Excel文件中的时间格式,碰到的时间格式转换问题: 读取这样的表格: 输出这样的数据结果: 然而这样的结果却不是我们想要的,我们需要的是这样的结果: 1.安装python官方库 ...

  9. python读取一个文件夹/子文件夹下的所有文件名字

    python读取一个文件夹/子文件夹下的所有文件名字 示例代码: import osfile_path = './images/' all_file_name = os.listdir(file_pa ...

  10. Python使用re模块进行正则匹配日期和时间

    Python使用re模块进行正则匹配日期和时间 目录 Python使用re模块进行正则匹配日期和时间 日期匹配 时间匹配 日期匹配 #导入需要的正则匹配的re包 # Load regex packag ...

最新文章

  1. 电脑要什么配置好_学平面设计用什么电脑比较好?对配置要求高吗?
  2. java 泛型 extends 多个
  3. HDU4324(强连通的Tarjan算法)
  4. Redis的常用功能
  5. Python中判断字符串中是否包含另一个字符串
  6. 2 环境设置_用友U8V10.1安装(Windows 7环境)
  7. Django APIView源码解析
  8. perl 如何判断变量为空
  9. net异步线程获取返回值的三种方式
  10. JDK源码阅读调试环境搭建
  11. docker安装mssql
  12. 您的好友邀请您加入群聊~
  13. 【第59篇】MetaFormer实际上是你所需要的视觉
  14. Promodel®模拟和优化套装加速企业绩效改善 功能介绍
  15. autoCAD 设置 AutoCAD 系统配置
  16. 【CSS 教程系列第 3 篇】CSS 如何添加注释
  17. linux kernel --- checksum相关ip_summed和feature字段解释
  18. 开课吧 Linux与基础系统编程
  19. 天津地铁行业建设现状与运营状况分析报告2022版
  20. DeFi:解决 EIP-4626 中的滑点问题

热门文章

  1. Python代码大全,海量代码任你下载
  2. Flash使用到数学、物理的公式
  3. 苹果手机有护眼模式吗_调节明暗度等于手机护眼模式?看完真懂了
  4. Android开发之传感器(加速度传感器、方向传感器)
  5. Error Client wants topic A to have B, but our version has C. Dropping connection.
  6. 网页搜索(百度谷歌)你不得不知道的十个小技巧
  7. Webpack Chunk 分包规则
  8. 修改 植物大战僵尸 存档信息
  9. 软件开发之大忌:想当然
  10. 百度地图坐标拾取系统自定义页面