Nous mettrons à jour notre Politique de confidentialité prochainement. En voici un aperçu.

Python : Les structures de données

Importer un CSV dans une liste

Testez gratuitement nos 1341 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Apprenez à importer le fichier CSV, qui vous servira pendant le reste de la formation, dans une liste Python.
06:54

Transcription

Dans ce chapître, j'aimerais qu'on approfondisse notre connaissance des structures de données, avec lesquelles on travaille avec Python. Et d'abord, en nous concentrant sur les types de données fondamentales qui sont des structures, donc qui sont des collections comme les listes et les tuples, par exemple. On a trois types de structures de données fondamentales, finalement dans Python. On a les tuples, on a les listes principalement, et puis, on a des dictionnaires. Les dictionnaires sont relativement simples à comprendre, ce sont les tableaux de hachage, Par contre, les listes et les tuples semblent très, très simples, mais ils sont beaucoup plus subtils que ça. Donc, on va travailler un peu avec ça et pour nous donner quelque chose à manger dans tout ça, et bien, je vous propose d'utiliser un fichier CSV que j'ai récupéré sur un site libre et qui comporte simplement une liste des départements : je vous l'ouvre ici, par exemple dans excel pour vous montrer le résultat. On a donc un index numérique manifestement, ensuite un numéro de département, le nom, le nom en majuscule, le nom sans les accents, et puis, en code. Et tout ça est séparé par virgules, avec des guillemets, comme délimiteurs de chaînes de caractères. On voit déjà ici qu'on a des problèmes d'encodage, déjà dans excel, on va voir ce que ça nous donne dans Python. Et puis, on va prendre ça, on va en faire une liste, ça nous donnera déjà une petite idée de comment importer des fichiers CSV dans Python. Donc, je me retrouve ici dans PyCharm et je vais travailler avec PyCharm et on va commencer déjà à importer notre fichier. Alors, comment est-ce qu'on ouvre un fichier ? Vous savez, on fait un open, vous voyez qu'on fait un open d'un nom, on a un mode qui par défaut va être un mode en read et puis, on peut éventuellement mettre un encoding. Ça, ça va nous intéresser. Alors, on va déjà faire un open de notre fichier. Donc, il est dans "d:\", je l'ai mis dans data, en tout cas ici, sur la machine où j'enregistre. Vous, si vous avez accès au fichier d'exercices, ce sera dans le répertoire dans lequel vous l'aurez posé, bien entendu. Et puis, ça s'appelle simplement : département (au singulier), point, CSV. Alors, le mode, pas besoin de le mettre. Par défaut, c'est read : donc, ça me va très bien. Et puis, et bien j'obtiens quoi ? Un fichier, qui va être ouvert. Déjà j'ai ça, et puis je peux faire un petit print : c'est vraiment, le début du début. On regarde déjà si ceci fonctionnent ; C'est notre premier test. On a un objet de type io TextIOWrapper. Et on voit d'ailleurs, ici, que l'encoding est en CP12 52. Donc, ça devient intéressant : qu'est-ce qu'on va avoir comme encodage à partir de ça ? C'est du CSV : Je vais devoir le découper ! Alors je pourrais faire des splits, des choses comme ça, mais ce n'est pas vraiment la peine puisque, on a un module, dans la bibliothèque standard, qui s'appelle simplement en CSV, c'est quand même assez classique comme problématique. Et donc, on va utiliser cette classe CSV, qui a un objet reader et on va utiliser cet objet. Avant cela, on va quand même se poser la question de l'ouverture de notre fichier et de sa fermeture. Donc, OK, je peux faire comme ça, mais on a quand même quelques exigences de propreté, en Python aussi, et si vous avez déjà manipulé des langages, comme C# par exemple, où on un using; ou visual basic, où on un with et bien, vous avez à peu près la même chose en Python, vous avez une syntaxe qui s'appelle with, comme ceci. Je vais enlever ma variable, je vais prendre mon open, le mettre dedans, faire un as, ça, c'est vraiment la syntaxe. Et puis, faire un block. Cette méthode with est adaptée à des classes et aussi à des fonctions : ici, j'ai une fonction open qui comporte des context managers. Un context manager, c'est une forme de décorateur de la fonction. On a parlé déjà des décorateurs dans notre formation au catalogue sur la création d'un script. On a un décorateur sur des contextes managers qui va permettre simplement d'ajouter du code avant et après. Donc, dans mon block, j'ouvre mon fichier, et puis, en l'utilisant avec with, je vais avoir sur l'open, quelque chose qui va se déclencher automatiquement lorsqu'on sort du block, par ce que je suis dans un with, pour nettoyer, pour fermer le fichier par exemple. Donc, c'est vraiment une règle d'hygiène de base quand on travaille avec l'ouverture de fichiers. On essaye ça, et puis, -pour l'instant, on n'a rien à ajouter d'autre-, il faut qu'on utilise notre CSV, on va faire un objet reader. On va prendre CSV, on va faire un read. Alors, on voit tout de suite qu'on a un objet qui s'appelle DictReader et un objet qui s'appelle reader. DictReader, comme son nom l'indique, va permettre de générer rapidement un dictionnaire, et ici, ce serait pas mal d'ailleurs : on pourrrait avoir un dictionnaire de codes de départements, et puis, le nom du département, donc ça peut être pas mal. Mais en ce qui nous concerne, on va se contenter du reader, lui-même qui va retourner en objet reader ; on va voir ce que ça nous donne. On va lui donner à manger notre itérable, ça tombe bien ; ça va être le résultat de notre open, et puis, on peut éventuellement ajouter des informations supplémentaires. On va voir s'il s'en sort, déjà. Mais s'il ne s'en sort pas, on peut ajouter des informations supplémentaires sur par exemple, le délimiteur. Ce qui va être important si vous avez autre chose que la virgule, par exemple, le point virgule, vous avez quelques options pour déterminer comment on va pouvoir lire le CSV, bien entendu. Donc ici, on a la virgule, mais on a pas besoin de la mettre, je vais la laisser, quand même, parce que c'est la virgule qui va être choisie par défaut ; Il va réussir à comprendre. Et puis, on va déjà voir ce que ça donne. On va peut-être faire une itération : on a reader qui va lire ligne après ligne, donc on va faire un "for r", par exemple pour raw, pour ligne, "in rd". Et puis, on va faire un print, directement de "r", on va voir ce que ça nous donne. Ça fait notre premier test. Bon, c'est pas mal. Donc, nous avons manifestement, un objet qui est un itérable, qui retourne des listes de chaque ligne de notre CSV. Et donc, sous forme de listes, pas sous forme de dictionnaires puisqu'on a utilisé le reader normal, traditionnel. Donc, on voit qu'on a un problème d'encodage ici, manifestement, il va falloir qu'on s'occupe de ça mais on a déjà réussi à traiter de façon basique notre fichier CSV.

Python : Les structures de données

Maîtrisez les ressources du langage de programmation Python. Abordez en détail les structures de données natives telles que les listes, les tuples et les dictionnaires.

2h07 (23 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
Spécial abonnés
Date de parution :30 août 2016

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !