Manipuler les fichiers CSV en Python : lecture, écriture et traitement

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Manipuler les fichiers CSV en Python

Le format CSV (Comma Separated Values) est l'un des formats les plus courants pour stocker des données tabulaires. Il est utilisé dans de nombreux domaines : export de tableaux Excel, échange d'informations entre services web et bases de données.

Python offre des outils efficaces pour travailler avec les fichiers CSV. Vous pouvez utiliser le module standard csv ou la puissante bibliothèque pandas pour l'analyse de données. Cet article explore les méthodes de lecture et d'écriture de fichiers CSV, le traitement des données, la prévention des erreurs et l'optimisation des performances avec des fichiers volumineux.

Les bases du format CSV

Structure d'un fichier CSV

Le CSV est un format texte simple. Chaque ligne du fichier contient un enregistrement. Les valeurs sont séparées par des caractères spéciaux. Par défaut, on utilise la virgule, mais on peut aussi employer le point-virgule, la tabulation ou la barre verticale.

Voici le contenu typique d'un fichier CSV :

Nom,Âge,Ville
Marie,25,Paris
Jean,30,Lyon

Avantages du format CSV

Le format CSV présente plusieurs avantages importants :

  • Structure simple et lisible
  • Pris en charge par la plupart des logiciels et langages de programmation
  • Taille de fichier réduite par rapport à d'autres formats
  • Modifiable dans un éditeur de texte
  • Universalité pour l'échange de données entre systèmes

Travailler avec le module csv

Lire un fichier CSV

Le module standard csv de Python est idéal pour les opérations de base. Voici comment lire simplement un fichier :

import csv

with open("data.csv", newline='', encoding='utf-8') as f:
    reader = csv.reader(f)
    for row in reader:
        print(row)

Résultat :

['Nom', 'Âge', 'Ville']
['Marie', '25', 'Paris']
['Jean', '30', 'Lyon']

Lecture avec en-têtes

Pour travailler facilement avec des colonnes nommées, utilisez csv.DictReader :

with open("data.csv", encoding='utf-8') as f:
    reader = csv.DictReader(f)
    for row in reader:
        print(row["Nom"], row["Ville"])

Cette méthode crée automatiquement un dictionnaire pour chaque ligne, avec les clés issues de la première ligne.

Écrire des données dans un fichier CSV

Écriture simple de lignes

La méthode de base utilise csv.writer :

with open("output.csv", mode='w', newline='', encoding='utf-8') as f:
    writer = csv.writer(f)
    writer.writerow(["Nom", "Âge"])
    writer.writerow(["Olivier", 35])

Écriture de données structurées

Pour écrire des données structurées, utilisez csv.DictWriter :

data = [
    {"Nom": "Sophie", "Âge": 28},
    {"Nom": "Alexandre", "Âge": 40},
]

with open("personnes.csv", "w", newline='', encoding='utf-8') as f:
    writer = csv.DictWriter(f, fieldnames=["Nom", "Âge"])
    writer.writeheader()
    writer.writerows(data)

Personnaliser les paramètres de lecture et d'écriture

Le module csv permet de configurer divers paramètres :

  • delimiter : spécifier le séparateur de champs
  • quotechar : caractère pour encadrer les valeurs
  • skipinitialspace : ignorer les espaces après le séparateur
  • lineterminator : caractère de fin de ligne

Travailler avec les fichiers CSV dans pandas

Installation et import de pandas

La bibliothèque pandas offre des fonctionnalités plus avancées pour manipuler les fichiers CSV :

pip install pandas

Lire un fichier CSV avec pandas

La méthode principale pour lire un fichier CSV :

import pandas as pd

df = pd.read_csv("data.csv")
print(df.head())

Blogs

Book Recommendations