Session du 30 septembre 2025 à 21h00
TOSA & Certifications
Librairie Standard & Modules
Session de mentorat CSV
Session de mentorat sur CSV
00:00:00 :Allez, c'est parti pour l'enregistrement.Donc déjà, rebonsoir à tous. Je pensais avoir salué tout le monde qui est là.Vous avez vu, ce soir, on va voir les CSE.
00:00:13 :Alors, on va rester plus ou moins dans la logique de ce qu'on a vu depuis l'année de rentrée, oui.Alors, n'hésitez pas. Je vais le répéter maintenant.
00:00:26 :S'il y a une question qui nous vient, quoi que ce soit qui vous perturbe,n'hésitez pas à m'interrompre et à poser la question directe.Je préfère que vous vous interrompiez et que vous vous posez la questionet qu'on sache un petit peu, qu'on puisse régler le problème et que vous suiviez le reste
00:00:44 :plutôt que de rester sur une incompréhension.Ne vous gênez pas, je lève la main au cas où vous avez un problème, vous pouvez poser votre question.
00:00:53 :Alors, je vais vous partager déjà mon VSCode.Ok. Au niveau du VSCode, dites-moi, est-ce qu'au niveau de la taille d'affichage, ça vous convient ?Pour moi, oui.
00:01:28 :C'est bon pour tout le monde ?Alors, je précise qu'au vu de la configuration, je ne vois pas les commentaireset je ne peux pas voir si vous faites les petits émoticônes.
00:01:37 :Donc, n'hésitez pas à vous exprimer.Bon. Ok. C'est à partir du principe que ça va pour tout le monde.Donc, ce soir, VCSV. Alors, il y a 15 jours, on a revu les fonctionnaires.
00:01:57 :J'entends quelqu'un qui veut parler, mais je n'entends rien.Ça ne passe pas bien au niveau du micro, alors je vais faire ça pour que tu puisses quand même le voir.
00:02:11 :Voilà. Donc, je le disais, on a revu les fonctionnaires.Ensuite, la semaine dernière, on a attaqué sur les GSON.Et comme toute logique, on va passer sur les CSV.
00:02:26 :Parce que comme je l'avais déjà plus ou moins abordé la semaine dernière avec les GSON,tout ce qui est GSON, dictionnaire et CSV, c'est quand même assez souvent lié.
00:02:38 :Je sais que je suis très beau, mais ma tête n'apporte pas grand-chose autour.Donc, les CSV, dans P2, il y a un module qui est intégré de base,dont le nom est très difficile à retenir, vous allez voir. Prenez des notes.
00:02:56 :Voilà. Il s'appelle CSV.Donc, déjà, avant de partir sur ce qu'on peut faire en Python avec du CSV, ainsi de suite,je vais vous montrer, est-ce que vous savez tous à quoi ressemble un fichier CSV ?
00:03:11 :C'est des données qui sont séparées par des virgules ?Oui. Alors, pas que, mais c'est généralement comme ça qu'on le retrouve.Alors, le format CSV, techniquement, c'est un fichier texte. D'accord ?
00:03:26 :Je vais diverser un petit peu les noms des extensions .csv, .txt, .doc, ainsi de suite.C'est une invention pure de Microsoft, parce que l'ordinateur, en fait, ne s'en sert pas.
00:03:42 :Techniquement, si vous mettez un fichier .txt,enfin une extension .txt, vous essayez de l'ouvrir avec un programme de visualisation d'imageset ça marchera pareil.Le fichier CSV, c'est un fichier texte, à la base.
00:04:00 :Je vais créer un comme ça. Je vais pouvoir vous montrer.Le fichier texte.Voilà.A la base, c'est des valeurs qui vont être séparées par des virgules.
00:04:14 :Je pense que ce sera séparé par des virgules, des points virgules,et un petit peu tout ce qu'on veut, finalement.On peut même créer avec des tabulations.
00:04:23 :Enfin, on peut vraiment mettre des séparations diverses et variées.Le principal, c'est que ce soit un caractère que l'ordinateur soit capable de comprendre.Maintenant, en règle générale, la plupart du temps, vous les trouverezsoit avec des virgules, soit avec des points virgules.
00:04:38 :Et avec une très, très forte majorité pour les virgules,puisque CSV, en anglais, veut dire comma separated value.Donc, comma étant pour virgule.Les deux autres mots, je pense que quelques-uns qui vont en anglais, vous l'avez déjà dit.
00:04:54 :Alors, comment ça va se présenter ?Par exemple, on va faire pour une liste de personnes.Donc, on va avoir nom, prénom, âge.On va pas faire quelque chose de très compliqué.
00:05:09 :Donc, par exemple, Dupont.Hop, Jean.Virgule, 30.On peut faire après, Durand.Voilà, Marc.Allez, 25.Et on peut continuer ainsi de suite.Là, dans un premier temps, ce que vous pouvez voir, c'est que ça représente quand même plus ou moins un tableau.
00:05:38 :La première ligne, dans le fichier CSV, elle n'est pas obligatoire.C'est-à-dire que si je mettais ça, techniquement, ça passerait exactement de la même manière.D'accord ?
00:05:51 :Maintenant, on va souvent utiliser des fichiers comme ça, où on va mettre en haut ces valeurs-là.Parce qu'on les utilisera plus tard.Ok ?J'ai une question.
00:06:06 :Oui, vas-y.Le fichier CSV, par exemple, après âge, tu mets pas de virgule pour séparer Dupont ?Non.Et après temps, tu mets pas de virgule pour séparer Durand ?
00:06:14 :Pas besoin.Non ?Pas de souci, Pierre.Non, non, t'as pas besoin de mettre une virgule à la fin.Parce qu'en fait, techniquement, on le voit pas à l'écran.
00:06:29 :Mais, en plus, que je me trompe pas, parce que c'est ça, non ?Alors, c'est celui-là.Bon.En fait, techniquement, il y a un anti-slash.
00:06:44 :Alors, je vais le faire comme ça, parce que j'ai recruté pour monter sur Mac.Un anti-slash avec un N à la fin de chaque ligne.
00:06:50 :Qui indique à l'ordinateur que c'est la fin des lignes.Donc, dans le cadre du fichier CSV, on va être capable de traiter ça sans l'indiquer explicitement.
00:07:00 :D'accord.Donc, du coup, il a pas besoin d'une virgule à la fin pour indiquer qu'il change de ligne.Ok ?Oui.Donc, ça, c'est le format d'un fichier CSV.
00:07:14 :Ça, c'est le format propre.Vous verrez, si vous avez l'occasion de finir de travailler toute la journée pour le fait, une belle horreur.Des fois, vous retrouvez des fichiers CSV qui sont un peu conrompus ou mal identifiés.
00:07:29 :Ou qui utilisent des caractères aux endroits où il faudrait pas.Par exemple, moi, l'exemple que j'ai eu, j'ai eu pas mal de mal à fêter aujourd'hui.
00:07:41 :La deuxième valeur, par exemple, c'était...Mettons qu'il y avait mis les trois prénoms, Marc, André, Gérard, peu importe.Et en fait, avec les trois prénoms séparés par les virgules, vous voyez tout de suite que ça me crée un petit souci.
00:08:01 :C'est que là où je pensais avoir trois colonnes, finalement j'en ai cinq.Donc il a fallu que je fasse ma journée à trouver des astuces pour pouvoir détecter ces cas individuellementet pouvoir gérer sur chacune pour relier tout ce qu'on appelle faire un nettoyage de CSV.
00:08:18 :Mais bon, on dégraisse un petit peu par rapport à l'objet de ce soir.Donc, maintenant, voilà, c'est la composition de la CSV.On a vu comment on pourrait le créer manuellement.
00:08:33 :Maintenant, dans le cadre de Python, et puis il y a beaucoup de choses en termes d'informatique.Je ne sais pas si vous l'avez déjà entendu, mais un bon programmeur est un programmeur feignant.
00:08:44 :Et il va chercher à automatiser un maximum de ce qu'il peut faire.Donc le module de CSV Python est assez puissant parce qu'il va vous permettre de créer vos fichiers CSV directement depuis Python.
00:08:58 :Alors, comment on va faire ça ?Premièrement, on va d'abord avoir un jeu de données.Alors, soit on le crée à la main, soit on récupère d'ailleurs, peu importe.
00:09:10 :Mais l'idée, c'est d'avoir un jeu de données qui est sous la forme d'une liste.D'accord ? C'est ce qui marche le mieux.Alors, on peut rester sur le fichier que je vous ai montré.
00:09:34 :On va dire nom, et on va mettre tout ça à la porte.Et on va commencer à rentrer nos données.Voilà.D'accord.Pour la première ligne.
00:10:01 :Activé du...Hop là.Hein ?Du temps en temps, activé du...Donc maintenant, comment je vais procéder pour créer mon CSV ?Donc, on va d'abord ouvrir un fichier.
00:10:37 :WithOpen, c'est bon pour tout le monde ?Il faut que je l'explique rapidement.Pour moi, oui.C'est bon ? Il faut que je l'explique.Pour moi, c'est bon.
00:10:50 :Ok.Alors, on va prendre ce qu'il nous propose.Voilà.Ok.Donc, qu'est-ce qui se passe ici ?Alors, tout d'abord, on va créer un objet CSV.
00:11:04 :Donc là, il est appelé Writer.Donc, on va utiliser pour ça le module CSV.FindWriter.Et on lui donne comme paramètre le fichier dans lequel on va vouloir mettre nos données.
00:11:14 :D'accord ?Donc ici, fichier CSV qui correspond avec WithOpen à mentora.csv.Ok ?Ensuite, pour rancrer chaque ligne,on va utiliser WriteRow.Et à chaque fois, on va inclure la ligne.
00:11:31 :D'accord ?On va lancer ça pour voir ce que ça donne.Hop !Pas de soucis.Ici...On retrouve bien...Il s'est caché.C'est avant la dernière colonne et le deuxième important du haut.
00:11:53 :Voilà, merci.On retrouve bien le fichier CSV.Et si j'affiche le contenu de mentora.csv,on retrouve bien, comme je vous l'ai montré tout à l'heure,le nom, le prénom âge, du pont, et ainsi de suite.
00:12:09 :D'accord ?Donc, on est bien sur le même format que le fichier CSV.Alors, je vais essayer de vous le mettre à côté pour que ça soit un peu plus visuel.
00:12:17 :Voilà.Hop !Le haut...Le variateur visuel de la ligne.Le coquin.Ta ta ta ta ta ta ta !Voilà.Donc là, je l'ai ouvert.
00:12:47 :Il a bien reconnu que c'était un fichier CSV.Et il m'a bien mis les virgules comme on avait dit auparavant.D'accord ?Donc...Maintenant qu'on a fait ça...
00:13:01 :Et du coup, il a effacé les données qui étaient avant ?Ah oui !Là, regarde.Là, il est comme ça.Je vais modifier mes données.
00:13:12 :Alors, on va dire que maintenant, lui, il a 35 ans.Elle, elle a 28.Et là, 42.Ok ?Donc, je vais faire ça.Je vais vous montrer ici le format CSV.
00:13:27 :On est bien d'accord.30, 25, 40.Et là, si je recommence...35, 28, 42.Là, ça a écrasé les données.Alors maintenant, c'est un peu plus avancé,mais on peut manipuler les fichiers CSVun peu comme on manipulerait les fichiers textes avec Pythonavec les sites 0 pour prouver le caractère, le début du texte.
00:13:54 :On peut naviguer dans le fichiercomme on peut naviguer avec un fichier Python dans les fichiers textes.D'accord ?On pourra faire exactement la même chose.
00:14:03 :Alors, techniquement, en brut,si je voulais utiliser le fichier Montora,on va le faire comme ça.Vous allez voir.Hop !Alors...CSV.Et si je voulais faire...
00:14:23 :CSV.read.Lines.Voilà.For.Lines.In.Lines.Je ne sais pas.OK.On va les imprimer en brut.OK.Je lance ça.Tac, tac, tac, tac.
00:15:04 :Est-ce qu'elle est recoupée ou pas ?Ah.Autant pour moi.Voilà.Lines.Tac.Voilà.Là, on voit bien qu'il m'a bien mis des lignes de fichier.
00:15:32 :Maintenant, si je mets le type...Ici.Tac.Tac.Consolider avec référence.Tac.On voit bien qu'il a mis des chaînes de caractère.D'accord ?Donc, pour Python,c'est à peu près ce que je vous disais un petit peu au début,où les extensions de fichiers,ce n'est pas forcément quelque chose de très prudent,
00:15:55 :c'est plus pour aider l'humain.Pour lui, il est capable de le manipuler,de le lire comme si c'était du texte.Mais tenez-moi.Ok ?Donc là,on a...
00:16:11 :On a créé notre fichier.Ok ?Maintenant,comment est-ce qu'on pourrait le faire pour le récupérer ?On a déjà un petit peu vu le...
00:16:25 :Le truc.Pour récupérer nos données.Depuis le...Le CSV.Donc là,on va...Par exemple,on va utiliser CSV Reader.Voilà.Avec notre fichier.Donc, vous voyez,sur les commandes,on a quand même cette petite chose d'assez simple.
00:16:51 :Writer pour écrire,Reader pour vivre.Et,on va afficher nos colonnes.Hop,je lance.Et là,qu'est-ce qu'il a fait ?Il m'a bien renvoyé mes colonnessous la forme de listecomme on l'avaitmis initialement.
00:17:09 :Ok ?Donc, tout l'intérêtet le lien avec tout ce qu'on a vu précédemment,avec les CSV,on peut partir de listeet revenir sous les listes.
00:17:19 :Ok ?Pour Python,un fichier CSV,c'est...C'est des listes, en fait.C'est des listes de...Chaque ligne du fichier CSV,ça correspond à une liste.
00:17:32 :C'est ça.À condition,premièrement,qu'on ait gardé la virgulecomme séparateur.Parce que si on commenceà mettre des points de virgule,ça va être un peu compliqué.
00:17:43 :Et,qu'on utilise le module Reader.Parce que,comme je vous l'ai montré juste avant,on peut aussi le traitercomme un fichier texte.Et là,il va récupérer des chaînes de caractère.
00:17:54 :Merci.Pour qu'on obtienne des listes,il faut bien utiliserle CSV Reader.Ok.Donc, maintenant,on a vu comment lire et exercerdans un fichier CSV.
00:18:08 :On récupère des listes.Mais,c'est pas forcément super pratique.Et c'est pas làoù ça devient le plus intéressant.Je vais d'abord supprimer tout ça.
00:18:20 :Parce qu'on a un CSV.Voilà.Alors, là,on a récupérénotre fichieren forme de liste.Mais, on peut égalementle récupérersous la forme directementd'un dictionnaire.
00:18:39 :Et là,vous allez voir un petit peutoute la magie.Je vais laisser ça comme ça.Normalement,ça, je vais le faire.Voilà.Depuis notre CSV,il nous a recréé un dictionnaire.
00:18:58 :Alors,si vous remarquez bien,la première lignea servi à créerles cléspourles dictionnaires.Et il a utilisé les valeursdes lignes suivantespour les associer aux clésde la première ligne.
00:19:14 :Donc là,ça commence à devenirquand même assez intéressantl'histoire.C'est-à-dire qu'en partantd'un fichier CSV comme ça,on a créé un dictionnaire.OK ?
00:19:31 :Maintenant,c'est un dictionnaire.Donc,ça veut dire qu'on peutle manipuler comme tel.On va rajouterun petit exercice.On va rajouter,par exemple,Heavy.
00:19:47 :OK ?Alors,hop.Maintenant,voilà.Bon,on n'a pas besoin d'autant.On va garder que ce serala première.Clac.Et on pourrait imaginerque pourchaque lignedu dictionnaire,on sait qu'il n'y a pasd'évidence puisqu'on vales rajouter.
00:20:10 :Voilà.Tac, tac.Comment je peux faire çaproprement ?Attendez.Je ne vais pas le fairedepuis la vie.Je vais le faire comme ça.
00:20:23 :Là, c'est quand mêmenulle.Et c'est un dictionnaire.Du coup, on peut utiliserEnumerate.Vous connaissez Enumerate ?Oui.Ça va être plus simplecomme ça.
00:20:39 :Clac.Là.Alors,rowdealégaleville i.Ok.Et à la fin,on va affichernotre lignepour voir si elle a bienété modifiée.
00:21:06 :Voyons voir ça.Ok.Tout se passe bien.Maintenant, il nous a rajoutéaux donnéesde chacun de nousune villecorrespondant à la listequ'on avait crééeà la base.
00:21:18 :Donc, tout ça, c'est bien.On a modifié des données.On a rajouté une valeur.Maintenant,qu'est-ce qu'on va fairede ça ?C'est bien beau.
00:21:27 :On a créé notre dictionnaire.Ce qui serait intéressant,c'est de le conserver.Et donc, par exemple,de le mettredans un dictionnaire.Et du coup,comme on a le readeret le writerpour le sérieux dessin,on a le dictreaderetle dictwriter.
00:21:49 :Alors,pour faire ça,on va faire ça.On a modifiénotre eau.On va créer, pour cela,une liste.Donc, on va direlisteégale listreader.
00:22:06 :C'est-à-dire qu'on vatransformernotre readeren une liste directement.On va l'imprimer.Vous voyez biencomment ça correspond.Ah, mais d'accord.Ah, tac, tac.Il allait un peu vite.
00:22:25 :Le faire à la main,c'est plus simple.Voilà.Maintenant,on va être bon.Qu'est-ce qu'on fait ?Attendez un petit instant.N'attendez pas à ça.
00:22:51 :OK.Voilà.Ça, je me réveille.Donc là,on a bien créé une listeavec nos différents dictionnaires.Et,je sais que vous avezdes questions.
00:23:13 :Donc,je vais vous poserquelques questions.Et,dans chaque valeur,on a rajouté la liste.OK.On va maintenantré-ouvrir notre fichier.Parce que je vous rappellequ'avec le liste open,on l'ouvre avec un mode.
00:23:29 :Et,on n'a pas besoind'être fermé.Et on va utilisernotre méthode listewriter.Alors,c'est pas si compliquéqu'avec le writeret le reader tout à l'heure,sauf qu'on a le type devant.
00:23:45 :OK.Dans le bitwriter,en premier paramètre,on garde toujoursle fichier css.usb.On va mettre,indiquer quelles sontla liste,la liste des champs.Donc là,on nous présentedans le premierélément de liste individue,c'est les clésqu'il y a dedans.
00:24:08 :Donc, c'est-à-dire qu'on prendle premier dictionnaireet on prend les clés.On va inscrirele user.Et ensuite,on va inscrireles colonnes.Donc,voyons ce que ça donne.
00:24:19 :Là,on a rien qui s'imprime.Maintenant,allons voir le fichier csv.Et boum,il nous a bien rajoutéles colonnes villeet il a bien mis les villesà chaque lignepour chacun de nous.
00:24:32 :Donc,tout commeavecle fichier jsoncomme on a vula semaine dernière,on peut utiliserle csvpour fairedes sortesde bases de données.
00:24:46 :D'accord ?Oui, ça donne des clichésun peu.Voilà,c'est ce que j'allais dire.C'est l'avantagedu csvpar rapport au json.Alors,je vais lancer çapuis je vais vous basculersur l'écran.
00:25:07 :Bien sûr,je ne sais passi j'ai misquelque chose.Je ne sais passi je peux arrêter çaparce que ce n'est pas clair.
00:25:28 :Hop,normalement.Voilà.Voilà.C'est correct ?Voilà,voilà.Très bien.Je vais faireun petit momentlà-haut.On va faireun petit peud'écran.Pourquoi il ne me montre pas ?
00:26:21 :Ah,c'est d'accord.Voilà.Donc là,j'ai mon fichier Excel.OK ?Alors,c'est Excel,il ne marche pas super bienpar exemple.Alors.Données.Je ne suis passur Excel comme ça.
00:26:42 :Obtenir des données.Donc là,à partir d'un fichier CSV,je vais aller cherchermon fichier.Donc,il est ici.Obtenir des données.Suivant.Là,vous voyez,il détecte automatiquementles données,les colonnespour le tableau.
00:27:21 :Ici,vous voyez,virgule,mais vous voyez,je peux avoir d'autres typesde séparations.S'il est égal,point,virgule,espace,tabulation,valeur que je personnalise,imageur fixe,enfin,il n'y a pas que la virgulepour le CSVcomme je vous le disais tout à l'heure.
00:27:38 :Et là,si je fais du couppour recréer mon tableauavec toutes mes données.Donc,ça,c'est l'avantage que vous avezsur le CSVpar rapport au JSON,c'est qu'après,vous pourrez retraiter les donnéesdans une feuille de calcultype Excelou autreprogramme du même genre.
00:27:53 :Et ainsi,après,faire des calculsou enregistrer les donnéessous un format plus visiblepour l'extrémité.Alors après,là où ça peut se coupler,c'est que du coup,depuis le fichier CSV,comme on peut le transformeren dictionnaire,un dictionnaire,on peut faire quoi avec ?
00:28:18 :On peut faire un JSON.Voilà.Et du coup,on peut faire un traitementde donnéesavec une API.Puisque les APIsvous répondent souvent en JSON.
00:28:34 :Je vais essayerde vous en montrer un.Alors,un peu d'instant.Je ne sais pasce qu'il y a là-dessus.Tac.Je passe celui-là.Attends,je vais retrouver l'adresse.
00:29:01 :Attends,je vais me positionneraujourd'hui.Voilà.Alors,ok,c'est pas ce que je voulais dire.C'est ça.Voilà !Je vais ouvrirmon autre fichier directement.
00:29:41 :Crac,crac.Attention,il n'y a pas grand-chose.Non.Ah,correct.Oh,ma soeur.C'est interdit.On va faire comme ça.Voilà.Attends,je retrouve ça.
00:30:11 :Non,ce n'est pas bien.Voilà.C'est ce que je voulais faire.Voilà.Alors,alors,ok,on y arrive.Ça prend un peu plus de tempsque prévu.
00:30:59 :Alors,après,j'ai pris ça,je crois que,voilà.Ah,voilà,j'ai mis mon dessin oeuvre.Ok,alors,je vaismettremon dessin oeuvreici.Je vaismettremon dessin oeuvreici.
00:31:35 :Je vaismettremon dessin oeuvreici.Mon dessous.Ah,voilà,on l'a eu.Donc,comme ça,j'ai une fois repartiret que vous allez voircomment ças'arrête.
00:31:56 :Voilà.Euh,ok,ça,c'est pas super,c'est pas terrible,c'est pas grave.Voilà.Donc,là,vous voyez,bon là,c'est des CVE,c'est des failles de sécuritéque vous pouvez trouversur différents systèmes.
00:32:23 :Et par exemple,une CVE,vous allez pouvoirla rechercherpar une API.Souvent,lorsque vous allezimpacterces API,vous allez avoirdes retours,des retours surdu JSON.
00:32:36 :D'accord ?Donc,et bien,à partir du momentoù vous pouvez joueravec du JSON,si vous avez des donnéesdepuis du CSV,comme ça,alors là,je rentre plus loindans ce que je faisjour le jour.
00:32:50 :Vous avez souventdes logsdans certains outilsde sécuritéqui vont ressortiren CSV.Vous manipulez ce CSVpour le transformeren dictionarypuis en JSON.
00:33:00 :Et par contre là,avec les données du JSON,vous pouvez allerinterroger des APIpluspour essayerde tirer une conclusionou de détecterun phénomène.
00:33:09 :Et tout çaà partir de Python.Comme quoi,Python restetrès puissant.Voilà, voilà.Est-ce que c'estbon pour vousà peu prèssur la manipulationdes fichiers CSV ?
00:33:24 :Oui.Vous voyez,rien debien compliquéen soi.Les deux principauxprincipales chosesà retenir,c'est que pour lire,c'est Writeret pour écrire,c'est Writeret pour lire,c'est Reader.
00:33:44 :On peut exactementmanipuler avecsoit les manipuleren texte directement,soit les manipuleravecen forme de dictionary.Quand on manipuledepuis le texte,on va se retrouveravec,soit on va partirde listes,soit on va se retrouveravec des listes.
00:34:02 :Et puis,quand on faitdu dictionnaire,ça va être des listesde dictionnaireà la place.Et la première ligneen CSV peut souventêtre prisecomme des cléspour le dictionnaire.
Aucune occurrence trouvée pour « ».