You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.4 KiB
38 lines
1.4 KiB
import csv
|
|
import re
|
|
|
|
def is_valid_email(email):
|
|
email_regex = r'^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$'
|
|
return re.match(email_regex, email) is not None
|
|
|
|
def supprimer_doublons_email(fichier_entree, fichier_sortie):
|
|
# Créer un ensemble pour stocker les emails uniques
|
|
emails_uniques = set()
|
|
|
|
# Ouvrir le fichier d'entrée en mode lecture
|
|
with open(fichier_entree, mode='r', newline='', encoding='utf-8') as fichier_csv:
|
|
lecteur_csv = csv.reader(fichier_csv)
|
|
|
|
# Stocker toutes les lignes sans doublons d'emails
|
|
lignes_sans_doublons = []
|
|
|
|
for ligne in lecteur_csv:
|
|
if len(ligne) >= 4:
|
|
email = ligne[3] # L'email est la 4e colonne (index 3)
|
|
|
|
if is_valid_email(email) and email not in emails_uniques:
|
|
emails_uniques.add(email)
|
|
lignes_sans_doublons.append(ligne)
|
|
else:
|
|
print(f'len is {len(ligne)}')
|
|
|
|
# Écrire les lignes sans doublons dans un nouveau fichier CSV
|
|
with open(fichier_sortie, mode='w', newline='', encoding='utf-8') as fichier_csv:
|
|
ecrivain_csv = csv.writer(fichier_csv)
|
|
ecrivain_csv.writerows(lignes_sans_doublons)
|
|
|
|
# Exemple d'utilisation
|
|
fichier_entree = 'jap-liste.csv' # Remplace par le nom de ton fichier CSV
|
|
fichier_sortie = 'jap-liste2.csv' # Nom du fichier de sortie
|
|
|
|
supprimer_doublons_email(fichier_entree, fichier_sortie)
|
|
|