Générer des noms et prénoms de manières aléatoires à l’aide de Python est une chose dont j’avais besoin. En effet, je voulais remplir une base de données afin de voir si mon nouveau site Les vrais profs fonctionnait. Vous savez, le site de mise en relation gratuite entre Elèves/parents et profs qui donnent des cours particuliers ? C’est nouveau, mais comme je ne suis pas un expert en communication, il a du mal à être connu… Il me fallait donc remplir artificiellement la base de données avec des entités fictives.

Noms et prénoms aléatoires avec Python: la préparation

Téléchargement des noms et prénoms pour un choix aléatoire en Python

Je veux générer des prénoms qui existent, mais aussi des noms de famille qui existent. Pour cela, il me fallait des fichiers contenant tous les prénoms et noms de famille de France.

Je suis donc aller sur:

Oui, en effet, il me fallait aussi la liste de toutes les villes car pour s’inscrire, il faut renseigner un code postal et une ville… C’est un peu logique quand on veux donner des cours particuliers; même si on ne donne que des cours par webcam, comme c’est mon cas, c’est toujours bien d’informer l’endroit où l’on réside.

Modifications des fichiers des noms et prénoms pour un choix aléatoire en Python

Ces fichiers sont au format CSV, et possèdent donc une première ligne inutile pour le traitement auquel je les destine. Par exemple, le fichier des prénoms commence par:

nombre;sexe;annee;prenoms;nombre_total_cumule
46;M;2011;Yacine;46
60;M;2011;Youssef;60

Il suffit juste de supprimer la première ligne. Idem pour les autres fichiers.

Noms et prénoms aléatoires avec Python: le traitement

L’objectif est de construire une requête SQL qui insert n entrées dans ma base de données. Il faut donc savoir la structure de la table. Je vais passer sur la réelle structure de ma table, et vais considérer qu’elle est de la forme:

(id,nom,prenom,codepostal,ville)

Les listes

prenoms_file = open('prenoms.csv' , 'r', encoding = 'utf8')
prenoms_liste = [ ligne.split(';')[3].upper() for ligne in prenoms_file]

On commence par ouvrir le fichier en mode lecture (‘r’ = read), puis on construit par compréhension la liste des prénoms. C’est une manière de faire que j’affectionne car c’est concis (1 ligne).

Explications: la boucle “for i in prenoms_file” parcours chaque ligne du fichier. Sur chaque ligne, comme vu précédemment, il y a des informations séparées par un “;” à chaque fois. Je convertis donc cette ligne en liste à l’aide de la méthode split(‘;’) et je prends uniquement le 4ème item (d’où le [3]). Ensuite, à l’aide de la méthode upper(), je convertis en majuscules pour harmoniser tous les résultats.

Je fais de même avec les noms de famille et les villes:

noms_file = open('noms.csv' , 'r', encoding = 'utf8')
noms_liste = [ ligne.split(',')[0].upper() for ligne in noms_file]
villes_file = open('villes.csv' , 'r', encoding = 'utf8')
villes_liste = [ (ligne.split(',')[1].upper() , ligne.split(',')[2]) for ligne in sorted(villes_file)]

La requête SQL

requete_sql = ''
table_name = 'matable'

for _ in range(200):
    requete_sql += 'INSERT INTO ' + table_name + ' (nom, prenom, codepostal, ville) VALUES (\''+choice(noms_liste)+'\', \''+choice(prenoms_liste)+'\', \''+choice(villes_liste)[1]+'\', \''+choice(villes_liste)[0]+'\');\n'
    

Et voilà! Une petite requête d’insertion de 200 entrées.

Catégories : Python

0 0 votes
Évaluation de l'article
S’abonner
Notification pour
guest
0 Commentaires
Le plus ancien
Le plus récent Le plus populaire
Commentaires en ligne
Afficher tous les commentaires
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x