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)
