Aller au contenu

Module « csv »

Pourquoi le module csv⚓︎

Le module csv de Python est très utile pour manipuler les fichiers CSV. Voici ses principaux intérêts :

Lecture et écriture simplifiées :

  • Permet de lire et écrire des fichiers CSV avec des méthodes dédiées (csv.reader, csv.writer).
  • Gère automatiquement les délimiteurs (virgules, points-virgules, tabulations, etc.).

Gestion des formats variés :

  • Supporte différents dialectes CSV (Excel, Unix, etc.) via csv.register_dialect.
  • Peut gérer des fichiers avec des délimiteurs personnalisés, des guillemets, etc.

Protection contre les injections :

  • Échappe automatiquement les caractères spéciaux (comme les virgules dans les champs) pour éviter les corruptions de données.

Compatibilité avec les dictionnaires :

  • csv.DictReader et csv.DictWriter permettent de travailler avec des lignes sous forme de dictionnaires, en utilisant les en-têtes comme clés.

Intégration avec d'autres modules :

  • Fonctionne bien avec pandas (pour l'analyse de données) ou sqlite3 (pour l'import/export de bases de données).

Léger et natif :

  • Fait partie de la bibliothèque standard, donc pas besoin d'installation supplémentaire.

  • Efficace pour les fichiers de taille modérée.

Exemple d'utilisation :

🐍 Editeur
import csv

# Écriture
with open('joueurs_tt.csv', 'w', newline='', encoding='utf-8') as f:
    writer = csv.writer(f, delimiter=',')
    writer.writerow(["Nom", "Prenom" , "Pays", "Classement_Mondial"])
    writer.writerow(["LEBRUN", "Félix", "France", 6])
    writer.writerow(["CALDERANO", "Hugo", "Brésil" , 3])

# Lecture
with open('joueurs_tt.csv', 'r', encoding='utf-8') as f:
    reader = csv.reader(f, delimiter=',')
    for ligne in reader:
        print(ligne)
▶️ Console
['Nom', 'Prenom', 'Pays', 'Classement_Mondial']
['LEBRUN', 'Félix', 'France', '6']
['CALDERANO', 'Hugo', 'Brésil', '3']

Cas d'usage :

  • Export/import de données depuis des tableurs (Excel, Google Sheets, ...)

  • Échange de données entre systèmes

  • Stockage simple de données structurées

Pour des besoins avancés (gros volumes, transformations complexes), des librairies comme pandas sont plus adaptées, mais csv reste idéal pour des tâches légères.

Lire et écrire des fichiers CSV en Python⚓︎

Python propose plusieurs méthodes pour importer ou enregistrer des données tabulaires. La plus courante utilise le module csv ou pandas.

Utilisation du module csv⚓︎

Le module csv fournit des fonctionnalités de base pour lire et écrire des fichiers CSV. Il est inclus dans la bibliothèque standard de Python, ce qui signifie qu'il n'y a pas besoin d'installer des paquets supplémentaires pour l'utiliser.

Avantages :

  • Simple et direct pour des tâches basiques comme lire ou écrire des fichiers CSV ligne par ligne.
  • Plus rapide pour des opérations simples et directes sur des fichiers CSV, car il n'ajoute pas de surcharge.

Inconvénients :

  • Ne fournit pas de structures de données avancées pour manipuler les données une fois qu'elles sont lues.
  • Pas de support intégré pour le nettoyage des données, la manipulation avancée ou l'analyse.

Lire un fichier CSV avec csv

🐍 Editeur
# Exemple 1

import csv

with open('fichier.csv', mode='r') as fichier:
    lecteur = csv.reader(fichier)
    for ligne in lecteur:
        print(ligne)
🐍 Editeur
# Exemple 2

import csv

# Lecture d'un fichier CSV
with open('donnees.csv', mode='r', encoding='utf-8') as fichier:
    lecteur = csv.DictReader(fichier)
    table = [ligne for ligne in lecteur]

# Affichage des 5 premières lignes
for ligne in table[:5]:
    print(ligne)

Écrire dans un fichier CSV avec csv

🐍 Editeur
import csv

with open('fichier.csv', mode='w', newline='') as fichier:
    écrivain = csv.writer(fichier)
    écrivain.writerow(['Nom', 'Âge', 'Ville'])
    écrivain.writerow(['Alice', '30', 'Paris'])
    écrivain.writerow(['Bob', '25', 'Lyon'])

Bonnes pratiques⚓︎

  • Encodage : assurez-vous d'utiliser le bon encodage (généralement UTF-8) pour éviter les problèmes avec les caractères spéciaux.
  • Gestion des erreurs : toujours gérer les exceptions lors de la lecture/écriture de fichiers pour éviter les plantages.
  • Validation des données : vérifiez les données pour vous assurer qu'elles sont cohérentes et complètes.

Applications pratiques⚓︎

  • Import/Export de données : utilisé pour transférer des données entre différents systèmes ou applications.
  • Analyse de données : les fichiers CSV sont souvent utilisés comme source de données pour l'analyse.
  • Sauvegarde de données : format simple pour sauvegarder des données structurées.

Les fichiers CSV sont un outil fondamental pour quiconque travaille avec des données, et savoir les manipuler est une compétence précieuse dans de nombreux domaines, de l'analyse de données à la gestion de bases de données.

Module Format Complexité Points forts
csv Texte (valeurs séparées) Simple, portable, universel
json Texte structuré ⭐⭐ Supporte l’imbrication, facile à lire et échanger
pandas Objet DataFrame ⭐⭐⭐ Puissant, idéal pour analyse de données