« A portée de main, toutes les informations sur mon parcours. »


Technicien Systèmes et Réseaux / Administrateur Système et Réseaux jr

genererLoginToulouse.py

Ce script crée des comptes utilisateurs en combinant les initiales du prénom et le nom normalisé pour générer le login, puis associe chaque login à un mot de passe existant. Le tout est écrit dans un fichier CSV avec colonnes login, password, lastname, firstname.

#!/usr/bin/env python3
import csv
import unicodedata
def normaliser_chaine(chaine):
chaine = unicodedata.normalize('NFD', chaine)
chaine = chaine.encode('ascii', 'ignore').decode('utf-8')
chaine = chaine.replace(" ", "").replace("-", "")
return chaine.lower()
fichier_users = "usersToulouse.csv"
fichier_passwords = "usersPassword2.csv"
fichier_sortie = "loginToulouse.csv"
users = []
with open(fichier_users, newline='', encoding="latin-1") as f:
reader = csv.DictReader(f, delimiter=';')
for row in reader:
users.append([row["givenName"].strip(), row["sn"].strip()])
passwords = []
with open(fichier_passwords, newline='', encoding="utf-8") as f:
reader = csv.DictReader(f)
for row in reader:
passwords.append(row["password"])
nb_comptes = min(len(users), len(passwords))
with open(fichier_sortie, "w", newline='', encoding="utf-8") as f:
writer = csv.writer(f, delimiter=';')
writer.writerow(["login", "password", "lastname", "firstname"])
for i in range(nb_comptes):
firstname, lastname = users[i]
login = normaliser_chaine(firstname[0] + lastname)
writer.writerow([
login,
passwords[i],
lastname.upper(),
firstname.capitalize()
])
print(f"{nb_comptes} comptes générés dans {fichier_sortie}")