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.DictReaderetcsv.DictWriterpermettent 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) ousqlite3(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 :
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)
['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
Écrire dans un fichier CSV avec csv
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 |