最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python讀取eml文件并用正則表達式匹配郵箱的代碼

 更新時間:2022年11月08日 09:34:24   作者:一晌小貪歡  
今天接到一個需求有一個同事離職了,但是留下了非常多的郵件,我需要將他的郵件進行分類,只要郵件中以@xxx.com結尾的存放在文件夾中,否則放在另一個文件夾中,這篇文章主要介紹了python讀取eml文件并用正則匹配郵箱,需要的朋友可以參考下

今天接到一個需求有一個同事離職了,但是留下了非常多(2W多封)的郵件,我需要將他的郵件進行分類,只要郵件中以@xxx.com結尾的存放在文件夾中(下圖名叫【是】的文件夾),否則放在另一個文件夾中(下圖名叫【否】的文件夾)。 目錄結構

在這里插入圖片描述

代碼注意事項

import email(我發(fā)現(xiàn)是內置模塊,不用安裝) 下面是注意事項(就當是注釋吧!?。?!) 1、提取包含一下后綴的郵箱,我用了split(“@”),所以不用寫 @

e_a = [‘Honeywell.com’, ‘honeywell.com’, ‘garrettmotion.com’, ‘HONEYWELL.COM’, ‘resideo.com’]

2、提取,收件人、發(fā)件人、抄送人的郵箱(這個是可以不寫的,但是我這個代碼是借鑒的,沒找到提取全部內容的函數(shù),只找到提取內容的函數(shù),所以加上了下面的代碼)

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(“發(fā)件人”, fjr)
print(“收件人”, sjr)
print(“抄送人”, csr)

3、將eml文件內容與收件人、發(fā)件人、抄送人拼接,并且加 " " 間隔,不加會有些小問題

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 BytesParser


e_a = ['Honeywell.com', 'honeywell.com', 'garrettmotion.com', 'HONEYWELL.COM', 'resideo.com']
for f in os.listdir("./數(shù)據(jù)源/"):
    # print(f)
    text = ""
    with open("./數(shù)據(jù)源/" + 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("發(fā)件人", 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 = "./數(shù)據(jù)源/" + f
            now = "./是/" + f
            os.rename(ori, now)
            break
    else:
        ori = "./數(shù)據(jù)源/" + f
        now = "./否/" + f
        os.rename(ori, now)
        print(f, "不在")

下面看看python正則表達式匹配郵箱

下面來看看python驗證郵箱模式的例子。

(首先還是把環(huán)境列出來)

環(huán)境:python 2.7.10

1. 一次匹配多個郵箱的情況

下面的例子中:郵箱中可以出現(xiàn) 數(shù)字、大小寫字母、下劃線、和橫線(-)

# -*- 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

結果輸出:

Center

2. 一次匹配一個

這種情況,常見在登錄界面用戶名為郵箱時, 此時一個字符串只有一個 郵箱

# 只匹配一個
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

結果輸出:

Center

到此這篇關于python讀取eml文件并用正則匹配郵箱的文章就介紹到這了,更多相關python讀取eml文件內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 解決Django Haystack全文檢索為空的問題

    解決Django Haystack全文檢索為空的問題

    這篇文章主要介紹了解決Django Haystack全文檢索為空的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • Python defaultdict方法使用分析

    Python defaultdict方法使用分析

    在使用Python字典的過程中,如果沒有key就會自動報錯,這時就需要python中defaultdict函數(shù)發(fā)揮作用。defaultdict是Python內建dict類的一個子類,功能與dict相同,但可以產(chǎn)生一個帶有默認值的dict,如果key不存在,就會返回默認值
    2022-10-10
  • Python列表list的詳細用法介紹

    Python列表list的詳細用法介紹

    這篇文章主要介紹了Python列表list的詳細用法介紹,列表(list)作為Python中基本的數(shù)據(jù)結構,是存儲數(shù)據(jù)的容器,相當于其它語言中所說的數(shù)組
    2022-07-07
  • 利用Python實現(xiàn)一個簡單的Web匯率計算器

    利用Python實現(xiàn)一個簡單的Web匯率計算器

    Dash?是一個用于構建基于?Web?的應用程序的?Python?庫,無需?JavaScript?。本文將利用Dash編寫一個簡單的Web匯率計算器,感興趣的可以了解一下
    2022-08-08
  • 20個被低估的Python性能優(yōu)化技巧分享

    20個被低估的Python性能優(yōu)化技巧分享

    這篇文章主要為大家詳細介紹了20個被低估的Python性能優(yōu)化技巧并附上了實測數(shù)據(jù),文中的示例代碼簡潔易懂,有需要的小伙伴可以參考一下
    2025-03-03
  • python四種出行路線規(guī)劃的實現(xiàn)

    python四種出行路線規(guī)劃的實現(xiàn)

    路徑規(guī)劃中包括步行、公交、駕車、騎行等不同方式,今天借助高德地圖web服務api,實現(xiàn)出行路線規(guī)劃。感興趣的可以了解下
    2021-06-06
  • Python-apply(lambda x: )的使用及說明

    Python-apply(lambda x: )的使用及說明

    這篇文章主要介紹了Python-apply(lambda x: )的使用及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Python數(shù)據(jù)分析模塊pandas用法詳解

    Python數(shù)據(jù)分析模塊pandas用法詳解

    這篇文章主要介紹了Python數(shù)據(jù)分析模塊pandas用法,結合實例形式詳細分析了Python數(shù)據(jù)分析模塊pandas的功能、常見用法及相關操作注意事項,需要的朋友可以參考下
    2019-09-09
  • pytorch 實現(xiàn)計算 kl散度 F.kl_div()

    pytorch 實現(xiàn)計算 kl散度 F.kl_div()

    這篇文章主要介紹了pytorch 實現(xiàn)計算 kl散度 F.kl_div(),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • Tkinter組件Entry的具體使用

    Tkinter組件Entry的具體使用

    本文主要介紹了Tkinter組件Entry的具體使用,Entry組件通常用于獲取用戶的輸入文本,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01

最新評論

高淳县| 图木舒克市| 惠水县| 合川市| 舒城县| 定安县| 霍州市| 婺源县| 罗甸县| 平原县| 德清县| 霞浦县| 莱芜市| 婺源县| 永定县| 莱西市| 蒙自县| 岳池县| 从化市| 内黄县| 平湖市| 永和县| 托克逊县| 林西县| 黔西| 永昌县| 台中市| 理塘县| 洛阳市| 宿州市| 寿阳县| 山阳县| 双牌县| 饶河县| 保山市| 陆良县| 吉林省| 丘北县| 安图县| 梧州市| 石柱|