Le format CSV est couramment utilisé pour échanger des données habituellement traitées à l’aide de tableurs ou de logiciels de bases de données principalement. Nous allons apprendre à importer et exporter des données en utilisant ce format.
I. Enregistrements
Un enregistrement est une structure de données, de types éventuellement différents, auxquelles on accède grâce à un nom.
Exemple : On peut représenter les notes d’un élève dans différentes disciplines à l’aide d’un enregistrement :
{'Nom': 'Joe', 'Anglais': '17', 'Info': '18', 'Maths': '16'}
Les champs (ou clés ou attributs) de ces enregistrements sont ici Nom, Anglais, Info et Maths. On leur associe des valeurs, ici 'Joe', '17', '18' et '16'.
En Python, on utilisera dans cet ouvrage les dictionnaires pour représenter les enregistrements conformément au programme.
II. Fichiers CSV
À noter
Ce format est né bien avant les ordinateurs personnels et le format xls puisque c’est en 1972 qu’il a été introduit.
Le format CSV (Comma Separated Value) est couramment utilisé pour importer ou exporter des données d’une feuille de calcul d’un tableur. C’est un fichier texte dans lequel chaque ligne correspond à une ligne du tableau, les colonnes étant séparées par des virgules. Il permet donc de représenter une liste d’enregistrements ayant les mêmes champs.
Pour éviter les problèmes dus à l’absence de standardisation du séparateur décimal (virgule en France, point dans les pays anglo-saxons), on peut paramétrer son tableur pour utiliser le point pour les nombres (français suisse par exemple).
Voici un exemple de feuille de calcul.
|
Le fichier CSV correspondant est : 'Nom','Anglais','Info','Maths' 'Joe','17','18','16' 'Zoé','15','17','19' 'Max','19','13','14' |
III. Lecture de fichiers CSV
On peut choisir de représenter en Python les fichiers CSV par des listes de dictionnaires dont les clés sont les noms des colonnes.
Avec l’exemple précédent, on définit la liste :
Table1 =
[{'Nom': 'Joe', 'Anglais': '17', 'Info': '18', 'Maths': '16'},
{'Nom': 'Zoé', 'Anglais': '15', 'Info': '17', 'Maths': '19'},
{'Nom': 'Max', 'Anglais': '19', 'Info': '13', 'Maths': '14'}]
À noter
En utilisant le vocabulaire habituel décrivant une feuille de calcul d’un tableur :
- une table est une liste de dictionnaires, ici Table1 ;
- une ligne est un dictionnaire, ici Table1[0] ;
- une cellule est une valeur associée à une clé d’un dictionnaire, ici Table1[0]['Info'].
IV. Import d’un fichier CSV
Pour l’import, on crée une liste de dictionnaires (un par ligne de la table). La première ligne du fichier CSV est considérée comme la ligne des noms des attributs. fichier est une chaîne de caractères donnant le nom du fichier sans son extension. Par exemple depuis_csv('Ma_Base') pour charger le fichier Ma_Base.csv.
V. Export vers un fichier CSV
Pour l’export, on entre le nom de la table sous forme de chaîne. On donne l’ordre des colonnes sous forme d’une liste d’attributs.