2016-10-19 47 views
-2

我試圖從使用Python中的nltk庫的電子郵件中過濾/刪除「from:」,「to:」,「cc:」。 有沒有這樣做的方法。 PS:我是新來的蟒蛇從電子郵件中刪除,從cc到

這裏是郵件

你好的線程,

一些文本

感謝,

名稱和細節

名稱和詳情

來源:XXX //這裏,我並不想讀這個領域

發送:星期四,2016年3月24日11:20 AM //這裏,我並不想讀這個領域

要:YYY .COM //這裏,我並不想讀這個領域

主題:一些文字

你好,

一些文本

謝謝!

名稱和細節

來源:有些名字//這裏,我並不想讀這個領域

發送時間:星期五,2016年3月4日2:40 PM //這裏我就不想讀這個領域

要:yyy.com //這裏,我並不想讀這個領域

主題:一些文字

嘿,

一些文字


+0

我發現很難想象如何構建「[某個] excel文件中的電子郵件轉儲」。從單個郵件中刪除電子郵件標題很容易,但沒有看到您的數據表示,這太模糊。投票結果太寬泛。 – tripleee

+0

不,我想讀取一個excel文件中的列中的電子郵件,並且必須過濾掉某些東西,如「from:」,「to:」等。 – user3125261

+0

請顯示您的工作。你試過什麼了? – Soviut

回答

1

使用Python 3.5+這是相當簡單的。

from email import message_from_file # or message_from_bytes if you want that 

with open(filename) as fh: 
    msg = message_from_file(fh) 
del msg['from'], msg['to'], msg['cc'] 
back_to_bytes = msg.as_bytes() 

這將簡單地打包標題行,就好像它們從不存在一樣。特別是刪除From:標題是有問題的,但如果您不將結果消息反饋給實際處理電子郵件的任何內容,那應該不成問題。

NLTK沒有關於電子郵件的具體信息,事實上,在嘗試使用NLTK處理正文部分之前,您可能需要了解更多有關電子郵件的信息。尤其是,您應該瞭解multipart/alternative消息部分的工作方式 - 您應該選擇其中一種,並且可能通過某種格式化過濾器來運行它(如果選擇了HTML部分(如果可用)現在很多郵件提供了一個text/plain部分,只需點擊鏈接末尾的實際內容在HTML中的網址即可)。

+0

在3.4之前,還有一個更加前衛的電子郵件庫,它仍然可用,但使用起來更棘手。這在3.6+文檔中記錄爲「傳統API」。該文檔僅在3.6版本中更新,但現在的API已經在以前的版本中提供。 – tripleee

相關問題