Le format CSV (Comma-Separated Values) est l'un des formats les plus simples et les plus couramment utilisés pour stocker et échanger des données tabulaires. Il est surtout prisé pour sa facilité d'utilisation, sa légèreté et sa compatibilité avec de nombreux logiciels, notamment les tableurs comme Microsoft Excel et Google Sheets. Dans cet article, nous allons explorer les bases du format CSV, sa structure, et comment le manipuler dans différents environnements de programmation, en particulier en Python.
Un fichier CSV est un simple fichier texte où les données sont organisées sous forme de lignes et de colonnes, séparées par des virgules (d'où le terme comma-separated values). Chaque ligne représente un enregistrement, et chaque colonne, une donnée de cet enregistrement. Bien que la virgule soit le séparateur standard, certains fichiers CSV utilisent d'autres caractères (comme le point-virgule ;) en fonction des régions ou des préférences de configuration.
Voici un exemple de fichier CSV représentant des informations d'élèves :
nom,prénom,âge,classe
Dupont,Jean,15,3B
Martin,Claire,16,3A
Legrand,Paul,14,3C
Dans cet exemple :
Un fichier CSV est simple mais repose sur quelques éléments structurants :
Dans certains pays (comme la France), on utilise le point-virgule ; au lieu de la virgule pour éviter les conflits avec le format de nombres décimaux :
nom;prénom;âge;classe
Dupont;Jean;15;3B
Martin;Claire;16;3A
Legrand;Paul;14;3C
Beaucoup de langages de programmation proposent des bibliothèques pour manipuler facilement les fichiers CSV. Dans cette section, nous explorerons la lecture et l’écriture de fichiers CSV en Python.
Python propose le module csv, qui facilite le chargement et le traitement des données CSV.
Voici comment lire un fichier CSV en Python :
import csv
# Ouvrir le fichier CSV
with open("eleves.csv", newline='') as file:
reader = csv.reader(file)
for row in reader:
print(row) # Affiche chaque ligne comme une liste
Si le fichier CSV contient des en-têtes, il est souvent plus pratique d'utiliser DictReader, qui permet de lire chaque ligne sous forme de dictionnaire en associant les valeurs aux noms de colonnes :
import csv
with open("eleves.csv", newline='') as file:
reader = csv.DictReader(file)
for row in reader:
print(row["nom"], row["prénom"], row["âge"]) # Affiche les valeurs de chaque colonne
Pour écrire des données dans un fichier CSV, nous utilisons csv.writer, qui permet d'écrire ligne par ligne. Voici un exemple :
import csv
# Données à écrire
data = [
["nom", "prénom", "âge", "classe"],
["Dupont", "Jean", 15, "3B"],
["Martin", "Claire", 16, "3A"],
["Legrand", "Paul", 14, "3C"]
]
# Écrire les données dans un fichier CSV
with open("nouveau_fichier.csv", "w", newline='') as file:
writer = csv.writer(file)
writer.writerows(data)
Pour écrire un fichier avec en-têtes et lignes sous forme de dictionnaire, on peut utiliser DictWriter :
import csv
# Données à écrire
data = [
{"nom": "Dupont", "prénom": "Jean", "âge": 15, "classe": "3B"},
{"nom": "Martin", "prénom": "Claire", "âge": 16, "classe": "3A"},
{"nom": "Legrand", "prénom": "Paul", "âge": 14, "classe": "3C"}
]
# Écrire dans un fichier CSV
with open("eleves.csv", "w", newline='') as file:
fieldnames = ["nom", "prénom", "âge", "classe"]
writer = csv.DictWriter(file, fieldnames=fieldnames)
writer.writeheader() # Écrire l'en-tête
writer.writerows(data) # Écrire les lignes
delimiter dans csv.reader ou csv.writer.pandas ou d'autres bibliothèques conçues pour traiter des données en masse.Les fichiers CSV sont principalement utilisés dans les domaines suivants :
Le format CSV est un format simple et universel pour stocker et échanger des données tabulaires. Facile à manipuler, il reste un choix populaire pour une utilisation quotidienne en raison de sa compatibilité avec une large gamme de logiciels. Que ce soit pour lire ou écrire des fichiers CSV, Python offre des outils puissants comme le module csv et pandas, permettant de manipuler des données avec efficacité.