L'écriture d'un fichier CSV

Étape 1 : Importer la bibliothèque CSV


Importer la bibliothèque csv à l'aide de la fonction import.

import csv










Étape 2 : Préparer les données


Dans cet exemple les données sont sous la forme de dictionnaires datas_1 et datas_2 ayant tous les mêmes clés.

import csv

datas_1 = {"cle_1":donnee_1, "cle_2":donnee_2}
datas_2 = {"cle_1":donnee_3, "cle_2":donnee_4}










Étape 3 : Créer un nouveau fichier


Utiliser un context manager (with) pour créer un fichier (instruction open avec l'attribut w).

import csv

datas_1 = {"cle_1":donnee_1, "cle_2":donnee_2}
datas_2 = {"cle_1":donnee_3, "cle_2":donnee_4}

with open('nouveau-fichier.csv','w') as f:
    ...
    ... 
    ... 


Étape 4 : Initialiser l'objet DictWriter


Créer un objet DictWriter et l'affecter à la variable writer. Attention il faut préciser les clés que l'on souhaite utiliser dans les dictionnaires?

import csv

datas_1 = {"cle_1":donnee_1, "cle_2":donnee_2}
datas_2 = {"cle_1":donnee_3, "cle_2":donnee_4}

with open('nouveau-fichier.csv','w') as f:
    writer = csv.DictWriter(f, fieldnames=["cle_1", "cle_2"])





Étape 5 : Écrire la première ligne


L'instruction writeheader permet de créer l'entête du tableau.

import csv

datas_1 = {"cle_1":donnee_1, "cle_2":donnee_2}
datas_2 = {"cle_1":donnee_3, "cle_2":donnee_4}

with open('nouveau-fichier.csv','w') as f:
    writer = csv.DictWriter(f, fieldnames=["cle_1", "cle_2"])
    csv_writer.writeheader()





Étape 6 : Écrire les données


Pour écrire les données, on utilise l'instruction writerow avec comme argument un dictionnaire.

import csv

datas_1 = {"cle_1":donnee_1, "cle_2":donnee_2}
datas_2 = {"cle_1":donnee_3, "cle_2":donnee_4}

with open('nouveau-fichier.csv','w') as f:
    writer = csv.DictWriter(f, fieldnames=["cle_1", "cle_2"])
    writer.writeheader()
    writer.writerow(datas_1)
    writer.writerow(datas_2)




Les différents mode d'ouverture des fichiers

Mode d'ouverture de fichier
"r" read Ouvre le fichier en lecture seule
"w" write Ouvre le fichier en écriture.
Si le fichier n’existait pas, il est crée.
Si le fichier existait, il est vidé de son contenu
"a" append Ouvre le fichier en ajout.
Les ajouts sont faits à la fin du fichier.










Exercices

Exercice 1


Complète le code ci-dessous pour obtenir un fichier nommé simpsons.csv contenant le nom, le rôle et l'age de chacun des Simpsons

import csv

homer = {"nom":"Homer", "role":"père", "age":39}
marge = {"nom":"Marge", "role":"mère", "age":39}
bart = {"nom":"Bart", "role":"frère", "age":10}
lisa = {"nom":"Lisa", "role":"sœur","age":9}

with open( ........... ,'w') as f:
    writer = csv.DictWriter(......................)
    writer.writeheader()
    ....................
    ....................
    ....................
    ....................




Exercice 1


Complète le code ci-dessous pour obtenir un fichier nommé simpsons.csv contenant le nom, le rôle et l'age de chacun des Simpsons

import csv

homer = {"nom":"Homer", "role":"père", "age":39}
marge = {"nom":"Marge", "role":"mère", "age":39}
bart = {"nom":"Bart", "role":"frère", "age":10}
lisa = {"nom":"Lisa", "role":"sœur","age":9}
 

with open('simpsons.csv','w') as f:
    writer = csv.DictWriter(f, fieldnames=["nom", "role", "age"])
    writer.writeheader()
    writer.writerow(homer)
    writer.writerow(marge)
    writer.writerow(bart)
    writer.writerow(lisa)
 



Oups !! on a oublié Maggie.










Exercice 2


Quelles sont les instructions qui permettent de rajouter Maggie dans le fichier simspons.csv

import csv

maggie =     {"nom":"Maggie","role":"petite sœur", "age":1}

.................
    .............
    .............




Exercice 2


Oups !! on a oublié Maggie. Quelles sont les instructions qui permettent de rajouter Maggie dans le fichier simspons.csv

import csv

maggie = {"nom":"Maggie","role":"petite sœur", "age":1}

with open("simpsons.csv", "a") as f:
    writer = csv.DictWriter(f, fieldnames=["nom", "role", "age"])
    writer.writerow(maggie)



Exercice 3


Cette fois-ci pour plus de simplicité, les personnages des Simpsons sont stockés dans une liste de dictionnaires.
Quelles instructions permettent d'enregistrer les données dans un fichier CSV, nommé simpsons2.csv

import csv

simpsons = [{"nom":"Homer", "role":"père", "age":39},
    {"nom":"Marge", "role":"mère", "age":39},
    {"nom":"Bart", "role":"frère", "age":10},
    {"nom":"Lisa", "role":"sœur","age":9},
    {"nom":"Maggie","role":"petite sœur", "age":1}]

.........................................
    .........................................
    .........................................
    .........................................
    .........................................


Exercice 3


Pour plus de simplicité, les personnages des Simpsons,

import csv

simpsons = [{"nom":"Homer", "role":"père", "age":39},
    {"nom":"Marge", "role":"mère", "age":39},
    {"nom":"Bart", "role":"frère", "age":10},
    {"nom":"Lisa", "role":"sœur","age":9},
    {"nom":"Maggie","role":"petite sœur", "age":1}]

with open('simpsons2.csv','w') as f:
    writer = csv.DictWriter(f, fieldnames=["nom", "role", "age"])
    writer.writeheader()
    for simpson in simpsons:
        writer.writerow(simpson)


Liste de liste -> CSV


Chaque liste est écrite dans une ligne.
De cette manière il faut avoir en premier elément de la liste de liste, une liste contenant les entêtes.

import csv

datas =  [['cle1', 'cle2', 'cle3'],
          [data_c1_a, data_c2_a],
          [data_c1_b, data_c2_b],
          [data_c1_c, data_c2_c]]

with open('mon-fichier.csv','w') as f:
    csv_writer = csv.Writer(f, delimiter=',',quotechar='"')
    # On itère la liste de liste pour écrire le corps des données
    for data in datas:
        csv_writer.writerow(data)


Titre du popup

Message du popup !