<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
今天接到一個需求有一個同事離職了,但是留下了非常多(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]
3、將eml檔案內容與收件人、發件人、抄送人拼接,並且加 " " 間隔,不加會有些小問題
sjr = email.utils.parseaddr(msg.get(‘to’))[1]
csr = email.utils.parseaddr(msg.get(‘cc’))[1]
print(“發件人”, fjr)
print(“收件人”, sjr)
print(“抄送人”, csr)text = text + " " + fjr + " " + " " + " " + " " + sjr + " " + " " + csr
4、正則匹配郵箱prog = re.compile(r’[a-zA-Z0-9_.±]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+')
5、移動檔案 os.remove()
res = prog.findall(text)
import email import os import re from email import policy from email.parser import BytesParser e_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 + " " + " " + csr else: 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 = "./資料來源/" + f now = "./是/" + f os.rename(ori, now) break else: ori = "./資料來源/" + f now = "./否/" + f os.rename(ori, now) print(f, "不在")
下面來看看python驗證郵箱模式的例子。
(首先還是把環境列出來)
環境:python 2.7.10
下面的例子中:郵箱中可以出現 數位、大小寫字母、下劃線、和橫線(-)
# -*- coding:utf-8 -*- # 郵箱格式-正規表示式匹配 import re # 一次匹配多個郵箱 str1 = 'aaf ssa@ss.net asdf asdb@163.com.cn asdf ss-a@ss.net asdf asdd.cba@163.com afdsaf' reg_str1 = r'([w-]+(.[w-]+)*@[w-]+(.[w-]+)+)' mod = re.compile(reg_str1) items = mod.findall(str1) for item in items: print item
結果輸出:
這種情況,常見在登入介面使用者名稱為郵箱時, 此時一個字串只有一個 郵箱
# 只匹配一個 str2 = 'ssa_a-c@ss.net.cn' reg_str2 = r'(^[w-]+(.[w-]+)*@[w-]+(.[w-]+)+$)' mod = re.compile(reg_str2) items = mod.findall(str2) for item in items: print item
結果輸出:
到此這篇關於python讀取eml檔案並用正則匹配郵箱的文章就介紹到這了,更多相關python讀取eml檔案內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45