Comment lire et écrire des fichiers CSV en Python : guide complet
Comment lire et écrire des fichiers CSV en Python : guide complet
Qu'est-ce qu'un fichier CSV ?
Un fichier CSV (Comma-Separated Values) stocke des données tabulaires en texte brut. Chaque ligne représente une ligne, et les champs individuels sont séparés par une virgule, un point-virgule ou un autre délimiteur. Les fichiers CSV sont légers, largement supportés par les tableurs, bases de données et outils d'analyse de données, ce qui en fait un format privilégié pour l'échange de données.
Exemple de fichier CSV
Voici une représentation CSV typique d'une petite base de données de langages de programmation. La première ligne contient les en-têtes de colonnes, suivies des lignes de données.
Données du tableau
| Langage de programmation | Conçu par | Apparition | Extension |
|---|---|---|---|
| Python | Guido van Rossum | 1991 | .py |
| Java | James Gosling | 1995 | .java |
| C++ | Bjarne Stroustrup | 1983 | .cpp |
Données CSV
Langage de programmation,Conçu par,Apparition,Extension Python,Guido van Rossum,1991,.py Java,James Gosling,1995,.java C++,Bjarne Stroustrup,1983,.cpp
Module csv intégré de Python
Le module csv fournit des outils de bas niveau pour lire et écrire des fichiers CSV. Il gère automatiquement les guillemets, délimiteurs et terminaisons de ligne, réduisant le besoin de manipulation manuelle de chaînes.
Fonctions clés
csv.reader()– Itérer sur les lignes comme listes.csv.DictReader()– Convertir les lignes en dictionnaires indexés par noms de colonnes.csv.writer()– Écrire des lignes dans un fichier CSV.csv.DictWriter()– Écrire des dictionnaires dans un fichier CSV.- Helpers de dialectes :
csv.get_dialect(),csv.list_dialects(),csv.register_dialect(),csv.unregister_dialect().
Lire un fichier CSV
Voici un exemple minimal, prêt pour la production, qui lit un fichier CSV et affiche chaque ligne comme une liste Python.
import csv
with open('data.csv', mode='r', newline='', encoding='utf-8') as fichier:
lecteur = csv.reader(fichier)
for ligne in lecteur:
print(ligne)
La sortie sera :
["Langage de programmation", "Conçu par", "Apparition", "Extension"] ["Python", "Guido van Rossum", "1991", ".py"] ["Java", "James Gosling", "1995", ".java"] ["C++", "Bjarne Stroustrup", "1983", ".cpp"]
Lire un CSV dans un dictionnaire
Utiliser csv.DictReader mappe automatiquement la ligne d'en-tête aux clés de dictionnaire, simplifiant la manipulation des données.
import csv
with open('data.csv', mode='r', newline='', encoding='utf-8') as fichier:
lecteur = csv.DictReader(fichier)
for ligne in lecteur:
print(ligne)
Dictionnaires résultants :
{"Langage de programmation": "Python", "Conçu par": "Guido van Rossum", "Apparition": "1991", "Extension": ".py"}
{"Langage de programmation": "Java", "Conçu par": "James Gosling", "Apparition": "1995", "Extension": ".java"}
{"Langage de programmation": "C++", "Conçu par": "Bjarne Stroustrup", "Apparition": "1983", "Extension": ".cpp"}
Écrire un fichier CSV
Les classes csv.writer et csv.DictWriter vous permettent d'écrire des données efficacement.
import csv
lignes = [
["Langage de programmation", "Conçu par", "Apparition", "Extension"],
["Python", "Guido van Rossum", "1991", ".py"],
["Java", "James Gosling", "1995", ".java"],
["C++", "Bjarne Stroustrup", "1983", ".cpp"],
]
with open('ecrireData.csv', mode='w', newline='', encoding='utf-8') as fichier:
ecrivain = csv.writer(fichier, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
ecrivain.writerows(lignes)
Le fichier ecrireData.csv généré correspondra à l'échantillon original.
Utiliser Pandas pour les opérations CSV
Pandas simplifie la gestion CSV en chargeant les données dans un DataFrame, permettant une manipulation puissante avec un code minimal. Installez avec pip install pandas si pas déjà disponible.
Lecture avec Pandas
import pandas as pd
df = pd.read_csv('data.csv')
print(df)
Sortie :
Langage de programmation Conçu par Apparition Extension 0 Python Guido van Rossum 1991 .py 1 Java James Gosling 1995 .java 2 C++ Bjarne Stroustrup 1983 .cpp
Écriture avec Pandas
import pandas as pd
donnees = {
'Langage de programmation': ['Python', 'Java', 'C++'],
'Conçu par': ['Guido van Rossum', 'James Gosling', 'Bjarne Stroustrup'],
'Apparition': ['1991', '1995', '1983'],
'Extension': ['.py', '.java', '.cpp'],
}
df = pd.DataFrame(donnees)
df.to_csv('pandaresult.csv', index=False)
print(df)
Le CSV résultant est identique à l'original, mais le DataFrame offre des capacités d'analyse avancées.
Conclusion
Le module csv de Python et Pandas fournissent des outils robustes et faciles à utiliser pour lire, écrire et manipuler des fichiers CSV. Maîtriser ces bibliothèques débloque des flux de travail de données efficaces à travers services web, pipelines ETL et recherche scientifique. Commencez à expérimenter aujourd'hui et intégrez la gestion CSV dans vos projets avec confiance.
Python
- Mots-clés et identifiants Python : Maîtriser les mots réservés et les conventions de nommage
- Instructions, indentation et commentaires en Python : Guide clair
- Variables, constantes et littéraux en Python – Guide complet
- Maîtriser la conversion et le transtypage de types en Python : Guide complet
- Maîtriser les E/S et l'importation de modules en Python : Guide pratique
- Comprendre les variables globales, locales et non locales en Python
- Entrées/sorties de fichiers Python : maîtriser les opérations sur les fichiers
- Maîtriser les opérations sur les répertoires et fichiers en Python
- Maîtriser les erreurs et exceptions intégrées de Python