Python Email Grabber
June 20, 2006 on 2:02 pm | In General, Python |Voici quelques lignes de Python qui vont vous permettre de récupérer en quelques secondes tous les emails contenus dans un ou plusieurs fichiers. Ce code utilise le module re, dédié aux expressions régulières. On scanne un repertoire et on extrait tous les emails contenus dans chaque fichier.
Adaptez le code à vos besoins.
# fonction qui permet de lire le contenu d’un fichier
f=open(inFile,“r”)
contents=f.read()
f.close()
return contents
def writeFile(outFile,contents):
# fonction qui permet d’ecrire du contenu dans un fichier
f=open(outFile,“w”)
f.write(contents)
f.close()
def getEmailsInFile(inFile):
# permet de lire un fichier puis d’en extraire une liste d’emails
contents = readFile(inFile)
return getEmails(contents)
def getEmails(contents):
# extrait tous les mails contenus dans une chaine
import re
exprat=re.compile(‘[0-9a-z.-]+[@][0-9a-z.-]+’) # la regexp qui detecte les emails
mailz = exprat.findall(contents) # retourne une liste avec tous les resultats
return mailz
import os
rootPath = r“c:RepertoireAAnalyser” # repertoire à analyser
lstEmails = [] # liste vide
for afile in os.listdir(rootPath):
fullPath = os.path.join(rootPath,afile)
if os.path.isfile(fullPath): # si fichier
for email in getEmailsInFile(fullPath): # detection emails
if email not in lstEmails: # verif doublons
lstEmails.append(email)
print “%s emails trouvés” % len(lstEmails)
# exporte la liste dans un fichier ‘Emails.csv’, les emails séparés par des retours à la ligne (
)
writeFile(os.path.join(rootPath,“Emails.csv”),“
“.join(lstEmails))
5 Comments »
RSS feed for comments on this post. TrackBack URI
Leave a comment
Powered by WordPress with Pool theme design by Borja Fernandez.
Entries and comments feeds.
Valid XHTML and CSS. ^Top^
Ouah c’est trop beau le python
Ceci dit, même si je ne suis pas pythonien, je m’étonne de voir :
rootPath = r”c:\RepertoireAAnalyser”
Le “r” n’est pas en trop ?
Comment by jidé — 20 June 2006 #
Et oui c’est beau le python
et encore la je me suis pas lancé dans une vraie pythonisation du code, ca aurait être encore plus joli
Le préfixe “r” permet simplement de préciser que la chaine qui suit ne sera pas ‘interprétée’, en tous cas pour ce qui est des caractères speciaux.
Je m’explique :
dans “c:\tests” , le “\t” serait interprété comme un caractère “tabulation” si on omet le “r” en préfixe.
Il faudra donc noter :
r”c:\tests” ou “c:\\tests” pour obtenir le résultat voulu
Comment by Juju — 20 June 2006 #
Par contre j’avoue que mon plugin de colorisation WordPress ne marche pas génial pour Python
dsl guys
Comment by Juju — 20 June 2006 #
Okéééé
subtile la bête ! Sympa de pouvoir préciser ça comme ça tout simplement, ca change du javascript
C’est vrai que les couleurs pourraient être plus sympa, peut etre un meilleur plugin ? Et d’ailleurs quand est ce que tu passes à wp 2.0 ?
Comment by jidé — 20 June 2006 #
Des que je l’install sur ma dedibox et que je fais un bon url rewriting pour pas perdre mon referencement.
Comment by Juju — 20 June 2006 #