Accueil

Traduction

Tutoriel Python - sommaire

Tutoriel Python - recherche

L'auteur : Patrick Darcheville

Vous pouvez me contacter via Facebook pour questions & suggestions : Page Facebook relative à mon site

Gestion avec Python des fichiers CSV et JSON

Dans le chapitre 11, vous avez vu comment gérer des fichiers de texte brut.
Python est capable aussi de manipuler des fichiers formatés soit au format CSV ou au format JSON.

Manipuler des fichiers CSV avec Python

Format de fichier CSV

Le sigle CSV signifie 'comma separated values' qui veut dire 'valeurs séparées par des virgules'. Il définit un format de fichier pour l'échange de données tabulaires c'est à dire de données produites par un tableur.

Exemple

Je dispose d'une feuille de calcul réalisée avec calc de libre Office (ce pourrait être un classeur Excel). J'ai besoin de ces données pour un traitement avec Python.
Je dois d'abord enregistrer le classeur dans un fichier CSV à partir de Calc.
Commande : Fichier/Enregistrez sous / type : texte csv , nom : bareme.csv
Ce fichier de données CSV est enregistré dans c : /python_prog sous le nom "bareme.csv".

Contenu du fichier "bareme.csv"

Lorsque j'ai créé ce fichier, Calc m'a demandé quel délimiteur je voulais comme délimiteur de champs ; j'ai répondu la virgule (j'aurais pu dire " ;").

Manipulation de ces données par Python

Je vais gérer ce fichier CSV avec Python.

Les commandes dans l'interpréteur

Analyse de cette batterie de commandes

Il faut importer le module csv qui permet de manipuler les fichiers à ce format.
Il faut aussi importer le module os pour disposer de la fonction chdir() qui permet de changer de répertoire courant.

Le fichier "bareme.csv" est ouvert en lecture (mode : "r").
Le contenu du fichier est récupéré avec la méthode reader() du module.
Cette méthode permet de récupérer le contenu du fichier sous forme de listes à raison d'un liste par ligne.
Avec une boucle on peut parcourir toutes les listes.
On peut afficher seulement certaines colonnes ; la première colonne a l'indice 0.

Récupérer le contenu du fichier CSV sous forme de dictionnaires

Nous venons de voir que la méthode reader du module csv récupérait le contenu du fichier CSV sous forme de listes. On peut récupérer le contenu sous forme de dictionnaires.

Les commandes

Commentaire

Utilisation de la méthode DictReader() !

Pour chaque ligne du fichier CSV d'origine on obtient un dictionnaire.
Comme le fichier d'origine avait trois colonnes, chaque dictionnaire comprend trois items.
Les clés des items sont les en-tête de colonne du fichier d'origine : référence, désignation, prix ht.

Écrire dans un fichier CSV

Maintenant que nous savons lire un fichier CSV, l’écriture n’est guère plus compliquée.

Nous allons créer un fichier CSV dans le cadre d'un programme.

Le code du programme

On écrit dans le fichier une série de tuples ; le premier tuple fait fonction d'en-tête. Tous les tuples ont la même structure: id, nom, âge, taille.

Le contenu du fichier "donnees.csv" obtenu via ce programme

Remarque importante : ouverture en mode "w". Donc si le fichier existe il est écrasé et s'il n'existe pas il est crée.
Pour écrire dans un fichier CSV il faut utiliser les méthodes writer() & writerow()
La première méthode a pour argument l'objet "file" et produit un objet "ecrivain".
La deuxième méthode appliquée à l'objet "ecrivain" permet d'écrire une ligne dans le fichier.

Manipuler des fichiers JSON avec Python

JSON (JavaScript Object Notation) est un format de données standard utilisé pour représenter et stocker des données structurées constitués d'items (paires clé-valeur), donc similaire à un dictionnaire Python.

Ce format initié d'abord pour le langage JavaScript est maintenant devenu un standard indépendant de ce langage de de programmation pour le web.

Récupérer le contenu d'un fichier JSON

Contenu du fichier

Fichier créé avec l'application "Bloc-notes".

Notez que c'est en fait une séquence de type 'dictionnaire' (items de clé-valeur) stocké de façon permanente dans un fichier.

Ouvrir un fichier JSON

Ouvrons le fichier "fiche.json" en mode commande.

Il faut importer le module json qui permet de manipuler des fichiers de ce format.
Pour récupérer le contenu du fichier, il faut utiliser la méthode load de ce module.
L'objet "contenu" est itérable (peut être parcouru avec une boucle).

Création d'un fichier JSON à partir d'un dictionnaire

Les commandes :

Pour écrire dans un fichier JSON il faut utiliser la méthode dump du module json.

Le contenu précédent de "fiche.json" a été écrasé et remplacé par :

Récupérer les programmes et fichiers de ce chapitre

Le fichier ZIP correspondant