2015-05-03 59 views
-3

我有一個關於10.000長的電子郵件列表,與不完整的電子郵件ID,由於數據不可靠,並想知道如何使用Python完成它們。完整的電子郵件使用Python

樣本電子郵件:

[email protected]
XYZ @ gmail的。
XYZ @ GMA
XYZ @摹

我一直在使用validate_email包過濾掉不良郵件嘗試和嘗試了各種正則表達式模式和我結束了[email protected]類似的搜索和使用文本崇高更換。我認爲有一個比正則表達式更好的方法,並希望知道。

+0

如果任何一個圖書館解決了OOTB,我會感到驚訝 - 這看起來像是一個非常本地化的問題。 – d33tah

+0

該代碼如何決定是否將'xyx @ g'完成爲'@ gmail'或'@ gotmail'? – Lix

+0

好的,我同意。你怎麼認爲我們可以解決這個問題。 – Nikhil

回答

2

要考慮的策略是爲您的域創建「trie」數據結構,例如gmagmail.co。然後,在域名是其他域名的前綴的情況下,如果存在唯一的此類分支,則可以考慮沿線索的較長分支。這將意味着在您的示例中最終將替換gmagmail.co

有一個關於how to create a trie in Python的答案。

0
def email_check(): 
    fo = open("/home/cam/Desktop/out.dat", "rw+") #output file 
    with open('/home/cam/Desktop/email.dat','rw') as f: 
     for line in f: 

     at_pos=line.find('@') 


     if line[at_pos + 1] == 'g': 
      line=line[:at_pos+1]+'gmail.com' 
     elif line[at_pos +1] == 'y': 
      line=line[:at_pos+1]+'yahoomail.com' 
     elif line[at_pos + 1] == 'h': 
      line=line[:at_pos+1]+'hotmail.com' 


     fo.write(line) 
     fo.write('\n') 
    f.close() 

email_check() 
相關問題