从批量eml文件中提取附件,使用方式如下

代码如下

 import email
import os
import sys #获取eml附件信息
def Get_Annex_Message(FilePath, Annex_Path):
global sum
try:
fp = open(FilePath, 'rb') #打开任意格式文件,通过email库来判断是否为eml文件
msg = email.message_from_binary_file(fp)
for part in msg.walk(): #循环信件中的每一个mime的数据块
if part.get_content_maintype() == 'multipart':
continue
Annex_name = part.get_filename()
if Annex_name: #如果附件存在名字
Annex_name = str(sum) + '.' + Annex_name
fp = open(os.path.join(Annex_Path, Annex_name), 'wb')
fp.write(part.get_payload(decode=True))
sum += 1 except Exception as e:
print(e)
return #递归文件夹下所有文件
def List_Filepath(Eml_Path, Annex_Path):
for parent,dirnames,filenames in os.walk(Eml_Path): #遍历文件夹
for dirname in dirnames: #对文件夹进行递归
List_Filepath(dirname, Annex_Path)
for filename in filenames: #r对文件进行判断
FilePath = os.path.join(parent,filename)
Get_Annex_Message(FilePath, Annex_Path) #创建目的文件夹
def Create_Dir(Annex_Path):
if os.path.exists(Annex_Path):
print("dir exists, Annex file will create in %s" % Annex_Path)
else:
os.mkdir(Annex_Path) #主函数
def main():
global sum
sum = int(1)
Eml_Path = sys.argv[1] #第一个参数为eml所在文件夹
Annex_Path = sys.argv[2] #第二个参数为eml附件输出的路径
Create_Dir(Annex_Path) #创建保存附加的文件夹
List_Filepath(Eml_Path, Annex_Path) if __name__ == "__main__":
main()

python批量提取eml附件的更多相关文章

  1. python批量下载邮件附件

    背景 由于同学每周要通过邮箱收数学建模作业,100多人给她发附件,她要一个个地点着下载. 太麻烦了,所以想用程序实现下载附件的功能. 在网上查资料后,最终实现了稍为简单的下载附件功能,代码有些细节还不 ...

  2. python批量提取哔哩哔哩bilibili视频

    # -*- coding: utf-8 -*- """ Created on Tue Jan 29 13:26:41 2019 @author: kwy "&q ...

  3. 个人永久性免费-Excel催化剂功能第84波-批量提取OUTLOOK邮件附件

    批量操作的事情常常能让人感到十分畅快,区别于一次次的手工的操作,它真正实现了“人工智能”想要的效果,人指挥机器做事情,机器就可以按着人意去操作.此篇给大家再次送了批量操作一绝活,批量下载OUTLOOK ...

  4. Python 超简单 提取音乐高潮(附批量提取)

    很多时候我们想提取某首歌的副歌部分(俗称 高潮部分),只能手动直接卡点剪切,但是对于大批量的获取就很头疼,如何解决? 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后 ...

  5. EmlParse:一款超轻量级的批量解析EML格式电子邮件的工具

    工具特点 1.绿色纯天然,无任何依赖库,文件大小不到150K: 2.可批量解析EML格式的电子邮件: 3.可提取EML文件中的正文和附件到指定目录: 4.可生成HTML格式的邮件列表清单,方便用户进行 ...

  6. PDF文本内容批量提取到Excel

    QQ:231469242,版权所有 sklearn实战-乳腺癌细胞数据挖掘 https://study.163.com/course/introduction.htm?courseId=1005269 ...

  7. 个人永久性免费-Excel催化剂功能第88波-批量提取pdf文件信息(图片、表格、文本等)

    日常办公场合中,除了常规的Excel.Word.PPT等文档外,还有一个不可忽略的文件格式是pdf格式,而对于想从pdf文件中获取信息时,常规方法将变得非常痛苦和麻烦.此篇给大家送一pdf文件提取信息 ...

  8. python批量处理压缩文件

    python批量处理压缩文件 博客小序:在数据的处理中,下载的数据很有可能是许多个压缩文件,自己一个一个解压较为麻烦,最近几日自己在处理一次下载的数据时,遇到大量的压缩数据需要处理,于是利用pytho ...

  9. GIS地理处理脚本案例教程——批量栅格分割-批量栅格裁剪-批量栅格掩膜-深度学习样本批量提取

    GIS地理处理脚本案例教程--批量栅格分割-批量栅格裁剪-批量栅格掩膜-深度学习样本批量提取 商务合作,科技咨询,版权转让:向日葵,135-4855_4328,xiexiaokui#qq.com 关键 ...

随机推荐

  1. 从输入URL到浏览器显示页面发生了什么

    1.输入网址 当你开始输入网址比如www.cnblogs.com时游览器就可以在书签或者历史记录里面去搜索相关的网址推荐给你. 2.游览器查找域名的IP地址 ① 请求发起后,游览器首先会解析这个域名, ...

  2. Depp Learning note Day1

    1.softmax函数的优化来防止溢出 2.np.argmax()函数的使用 返回值为数组中最大值的索引 a = [1, 2, 3, 4, 3, 7] print(np.argmax(a)) 若np. ...

  3. Mac 装Sequel pro 连接 Mysql 8.0 失败、登录不了、loading问题

    最近都没更新博客,零零散散的笔记也都没整理,so 觉得还是不放上来了. 高兴的是入手了期待好久的水果机,开始了各种捣鼓,好想大撸一下代码啊.... 回到正轨,刚装了mysql8.0, 想装下mysql ...

  4. Idea 使用小技巧【取消自动打开项目】

    受到我沈誉大大的启发,把每次的项目自动启动上次的项目给关掉,其实不管掉也行,既然这样,那还是关掉吧. ctrl + alt + s 输入 system Settings 然后把Reopen last ...

  5. python基础--numpy.dot

    # *_*coding:utf-8 *_* # athor:auto import numpy dot = numpy.dot([0.100, 0.200],2.) print(dot) #[ 0.2 ...

  6. 提高github代码下载速度的小技巧

    1.打开如下路径: C:\Windows\System32\drivers\etc 2.将此处的HOSTS文件复制到其他地方,比如桌面.(此处大概率是没有编辑权限的) 3.用记事本打开HOSTS文件, ...

  7. 前端开发,走浏览器缓存真的很烦,拒绝浏览器走缓存从meta标签做起!

    <meta http-equiv="Cache-Control" content="no-cache" /> <meta http-equiv ...

  8. 模拟实现库函数的atoi、atof和itoa

    1.函数atoi atoi (表示 alphanumeric to integer)是把字符串转换成整型数的一个函数.广泛的应用在计算机程序和办公软件中.atoi( ) 函数会扫描参数 nptr字符串 ...

  9. MVC Bundle生成的css路径问题

    项目是嵌套在主站的一个子站点,结果用CssRewriteUrlTransform来将相对目录路径改成相对网站根目录路径的时候发现少了虚拟目录的路径.最终解决方案: /// <summary> ...

  10. 学习HTML5, Canvas及简单动画的使用

    通过在CSDN中的一些简单课程学习,跟随老师联系,做了如下的月亮,太阳和地球的运动效果.纪录在文章中,用于下次使用. 准备工作如下: 1. 使用三张背景图片 太阳 月亮 地球 2. 在HTML页面中定 ...