Bonjour messieurs,
J'ai quelques difficultés à effectuer ce que je veux, pourriez-vous me filer un coup de main ?
Problématique :
J'ai 2 fichiers :
Fichier0 contient des URLs
Fichier1 contient des mails
La majorité des noms de domaine (NDD) qui sont présents dans les mails du Fichier1 sont présents dans les URLs du Fichier0.
Je cherche à supprimer du Fichier1 les lignes (les mails) dont les NDD sont présents dans le Fichier0 et à les écrire dans un Fichier2, ainsi qu'à supprimer du Fichier0 les lignes (les URLs) dont les NDD sont présents dans le Fichier1 et à les écrire dans un Fichier3.
Tel que :
match0 = NDD juste avant l'ENDD (extension de nom de domaine)*** (liste qui doit être dans un tableau, disponible plus bas)
match1 = NDD ([a-z][0-9], '-') après '@' et avant le '.' qui suit ce '@' (y'en a d'autres avant le '@' attention) dans fichier1
L'algorithmique ressemblerait à ceci :
---
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 if match1 in Fichier1 in line 1 == match0 in Fichier0 copier ligne of Fichier0 in Fichier2 copier ligne of Fichier1 in Fichier3 supprimer ligne of Fichier0 supprimer ligne of Fichier1 boucle sur tout le Fichier1 (++, passer à la line 2 et ainsi de suite)
exemple Fichier0 =
http://test.match1.com/
http://match2.fr/
http://test.test.match-0.net/ (il peut donc y avoir un trait d'union)
exemple Fichier1 =
test_test@match-0.net
test-test@match1.com
test.test@match3.fr
*** liste des extensions de noms de domaine (ENDD) :
.com
.gouv
.net
.org
---
On m'a dit que je pouvais utiliser le module 'tldextract' ou encore 'urllib' mais le module 're' me semble plus approprié...
Pour le fun, voici mon super script d'un langage encore inconnu et ressemblant au python :
---
---
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 import re ENDD = ['.com','.gouv','.net','.org'] match0 = [a-z][0-9][-] before ENDD # 'before' pq je sais pas cmt le dire match1 = [a-z][0-9][-] after '@' and before '.' which is after '@' # ahem Fichier2=[] Fichier3=[] Fichier1 = re.search(match1) Fichier0 = re.search(match0) if match1 == match0 print line where match1 is in Fichier3 print line where match0 is in Fichier2 do ++
J'ai quelques lacunes en programmation... Visiblement ! Pourriez-vous m'aider ? Merci !
Partager