1、如果獲取郵件地址?
我們分析郵件的時候,從From和To頭信息中會提取到類似“DIrk Ye ”的郵件地址,如果我們需要只保留完整的EMail地址,可能需要正則表達式來提取,由于郵件格式的多樣性,可能比較麻煩。Python提供了一個工具函數,可以方便的使用:
import email.Utils
def getCleanMailAddress(strAddr):
emails = email.Utils.parseaddr(strAddr.lower())
return emails[1]
2、利用Mimetypes確定文件的擴展名:
在郵件分析中,經常會碰到沒有指定文件名或者擴展名的附件,我們可以根據附件的MimeType來猜測其應有的擴展名:
import mimetypes
def getFileExtension(strContentType):
guessmimes = mimetypes.guess_all_extensions(strContentType)
if guessmimes:
return guessmimes[-1]
else:
return ''
另外,mimetypes.types_map中包含了所有運行系統可識別的MimeType,如果沒有你期望的類型,可以通過mimetypes.add_type(’audio/midi’, ‘.mid’)方法來添加自己的東西,甚至可以作出修改。
3、使用證則表達式從字符串中提取指定的模式:
Python的正則表達式也是非常強大的,有搜索、匹配、抽取等。有時候抽取是有點麻煩但非常有用的功能。假設我們會有大量的文本類似:
abcd@mypdx.com
aaaa@mypdx.com
n234f@mypdx.com
其中前半部分的名稱都是數字和字母的組合,現在我們使用證則表達式抽取名字部分:
import re
def getUserName(strAddr):
addr_re = re.compile('^([0-9a-z]+)@(.*)')
unames = addr_re.search(strAddr)
if unames is not None:
return mptos.group(1)
else:
return ''
Python在文字處理方面還有很多特點,我只能把用到的東西列一下。有不少專門講解Python相關東西的書籍,有的還是免費的;比如專門講解Python文本處理的Text Processing in Python,實用而精彩,而另外一本Python Cookbook也是相當不錯的讀物,現在已經有第二版了,覆蓋了Python2.3、2.4的新特性;去Python主站看看有什么適合你的書:http://wiki.python.org/moin/PythonBooks
Python Cookbook相關的兩篇文章:
Cooking with Python, Part 1
Cooking with Python, Part 2
文章來源于領測軟件測試網 http://www.kjueaiud.com/