Python>>> Email extractor
sebsauvage
-
wiili -
wiili -
Comment extraire les adresses email de n'importe quel fichier ?
Avec 2 lignes de code en Python !
import sys,re
print '\n'.join(re.findall('([\w\.\-]+@[\w\.\-]+)',sys.stdin.read()))
Détaillons un peu ça:
sys.stdin, c'est l'entrée standard (le clavier en général, mais ça peut aussi être un fichier lu avec monprogramme.exe < monfichier.txt).
sys.stdin.read() est une chaîne qui contient tout ce qu'il y a sur l'entrée standard.
On utilise le module d'expressions régulière (re) pour trouver toutes les chaînes (findall) qui ressemblent à une adresse email ([\w\.\-]+@[\w\.\-]+).
\w c'est les caractères a-z, A-Z, 0-9 et _
\. c'est le point (.)
\- c'est le tiret (-).
[\w\.\-]+ veut dire : "n'importe quelle combinaison d'un ou plusieurs caractères a-z, A-Z, 0-9, _, - ou ."
Une adresse email est toujours de la forme toto@titi.com :
on répète donc après l'arobase (@):
[\w\.\-]+@[\w\.\-]+
re.findall('([\w\.\-]+@[\w\.\-]+)', chaine ))
va donc renvoyer une liste de toutes les adresses email contenues dans la chaîne. Exemple:
>>> import re
>>> print re.findall('([\w\.\-]+@[\w\.\-]+)','coucou a@boo.com kiki c@dodo.net gloug')
['a@boo.com', 'c@dodo.net']
On va coller ensemble tous les éléments de cette liste pour en faire une seule chaîne de caractères, en séparant chacun des éléments par un retour à la ligne (\n). Exemple:
>>> b = ['bozo','le','clown']
>>> print '\n'.join(b)
bozo
le
clown
>>> print ' * '.join(b)
bozo * le * clown
Et on affiche le résultat:
print '\n'.join(re.findall('([\w\.\-]+@[\w\.\-]+)',sys.stdin.read()))
Sauvegardez les 2 lignes de Python dans un fichier texte (par exemple email_extractor.py) et donnez-lui à manger *n'importe* quel fichier (par exemple un fichier HTML pris au hasard sur le web, ou un fichier EXE, ou une DLL):
python email_extractor.py < monfichier.html
On pourrait encore affiner l'expression régulière (par exemple pour forcer la présence d'un point dans le nom de domaine)
Mais dans la majorité des cas, ça suffit.
Avec 2 lignes de code en Python !
import sys,re
print '\n'.join(re.findall('([\w\.\-]+@[\w\.\-]+)',sys.stdin.read()))
Détaillons un peu ça:
sys.stdin, c'est l'entrée standard (le clavier en général, mais ça peut aussi être un fichier lu avec monprogramme.exe < monfichier.txt).
sys.stdin.read() est une chaîne qui contient tout ce qu'il y a sur l'entrée standard.
On utilise le module d'expressions régulière (re) pour trouver toutes les chaînes (findall) qui ressemblent à une adresse email ([\w\.\-]+@[\w\.\-]+).
\w c'est les caractères a-z, A-Z, 0-9 et _
\. c'est le point (.)
\- c'est le tiret (-).
[\w\.\-]+ veut dire : "n'importe quelle combinaison d'un ou plusieurs caractères a-z, A-Z, 0-9, _, - ou ."
Une adresse email est toujours de la forme toto@titi.com :
on répète donc après l'arobase (@):
[\w\.\-]+@[\w\.\-]+
re.findall('([\w\.\-]+@[\w\.\-]+)', chaine ))
va donc renvoyer une liste de toutes les adresses email contenues dans la chaîne. Exemple:
>>> import re
>>> print re.findall('([\w\.\-]+@[\w\.\-]+)','coucou a@boo.com kiki c@dodo.net gloug')
['a@boo.com', 'c@dodo.net']
On va coller ensemble tous les éléments de cette liste pour en faire une seule chaîne de caractères, en séparant chacun des éléments par un retour à la ligne (\n). Exemple:
>>> b = ['bozo','le','clown']
>>> print '\n'.join(b)
bozo
le
clown
>>> print ' * '.join(b)
bozo * le * clown
Et on affiche le résultat:
print '\n'.join(re.findall('([\w\.\-]+@[\w\.\-]+)',sys.stdin.read()))
Sauvegardez les 2 lignes de Python dans un fichier texte (par exemple email_extractor.py) et donnez-lui à manger *n'importe* quel fichier (par exemple un fichier HTML pris au hasard sur le web, ou un fichier EXE, ou une DLL):
python email_extractor.py < monfichier.html
On pourrait encore affiner l'expression régulière (par exemple pour forcer la présence d'un point dans le nom de domaine)
Mais dans la majorité des cas, ça suffit.
A voir également:
- 1.4 liter email extractor
- Extractor 1.4 - Télécharger - Mail
- Universal extractor - Télécharger - Compression & Décompression
- Comment creer un compte email - Guide
- Dmg extractor mac - Télécharger - Divers Utilitaires
- Google maps email extractor - Télécharger - Aspirateurs de sites