Données en table

Format CSV

Les objectifs :

  • Lire un fichier CSV
  • Trier et sélectionner des entrées à partir d'un fichier CSV

Les données en tables

Le C.S.V

Un fichier CSV (en anglais, comma separated values) est le fichier de base des données recueillies - sans formatage particulier.
Chaque champ est séparé par une virgule, un point virgule ou une tabulation.
Les fichiers CSV sont très courant et permettent d’échanger facilement des données.

Fichier CSV dans un éditeur de texte

Il est possible d'ouvrir un fichier CSV dans un éditeur de texte.
Ici le rendu du fichier pokedex.csv dans VSCodium.


Fichier CSV dans un tableur

Il est possible d'ouvrir un fichier CSV dans un tableur.
Ici le rendu du fichier pokedex.csv dans Libre Office Calc.

Le fichier CSV en Python

Lecture d'un fichier CSV

CSV -> Liste de dictionnaires

A partir d'un fichier CSV, il est possible d'obtenir une liste de dictionnaires
La première ligne du fichier servira à définir les clés du dictionnaires.
Chacune des autres lignes, sert à définir les valeurs d'un dictionnaires.
Les dictionnaires ainsi créées sont ajoutées à la liste datas

import csv

with open('mon-fichier.csv','r', encoding='utf-8') as f:
    datas = [ dict(row) for row in csv.DictReader(f) ]


Trie d'une liste de dictionnaire

Tri d'un fichier CSV


Il est possible de trier un fichier CSV selon une colonne,
Étant donné que les données sont sous forme d'une liste de dictionnaire, il faut préciser la clé qui va servir au tri de la liste.
Pour se faire, on va utiliser une fonction qui renvoie la valeur de la clé sélectionner.
 
simpsons = [{"nom":"Homer", "age":39},  {"nom":"Maggie", "age":1} ,{"nom":"Bart", "age":10},  {"nom":"Marge", "age":35},  {"nom":"Lisa", "age":8}]

# pour trier la liste de dictionnaire, il faut avoir définie une 
# fonction qui renvoie la valeur utilisée pour le trie

def get_age(personnage):
    return personnage["age"]

# Aprés on peut utiliser une fonction de trie telle que sort, sorted, ... 
# en lui donnant comme paramètre optionnel la fonction.

simpsons.sort(key=get_age)
print(simpsons)
[{'nom': 'Maggie', 'age': 1}, {'nom': 'Lisa', 'age': 8}, {'nom': 'Bart', 'age': 10}, {'nom': 'Marge', 'age': 35}, {'nom': 'Homer', 'age': 39}]
            
            

Titre du popup

Message du popup !