Python CSV : lecture et écriture de feuilles de calcul
Apprenez à gérer les données CSV en Python. Maîtrisez csv.reader, csv.writer et DictReader/DictWriter pour une analyse efficace des tables.
Aperçu
CSV (Comma-Separated Values) est un format omniprésent pour exporter et importer des données à partir de feuilles de calcul et de bases de données relationnelles. Les fichiers CSV étant de simples fichiers texte, ils sont universellement pris en charge par les outils analytiques, les plateformes de bases de données et les langages de programmation. Python dispose d'un module « csv » intégré spécialement optimisé pour l'analyse, l'écriture et la manipulation de données tabulaires sans avoir besoin de bibliothèques tierces comme les pandas.
Le module csv fournit deux interfaces principales : les lecteurs/écrivains basés sur des listes et les lecteurs/écrivains basés sur un dictionnaire. `csv.reader()` et `csv.writer()` représentent chaque ligne du CSV sous la forme d'une liste de chaînes, ce qui est simple mais nécessite de référencer les colonnes par leur index numérique. Pour une approche plus robuste, les développeurs utilisent `csv.DictReader()` et `csv.DictWriter()`. Ces classes mappent chaque ligne à un dictionnaire en utilisant la ligne d'en-tête CSV comme clés, produisant un code hautement lisible qui ne se casse pas si les colonnes sont réorganisées.
Lorsqu'il s'agit de fichiers CSV, les détails de la syntaxe sont importants. Différents programmes utilisent différents délimiteurs (comme des tabulations ou des points-virgules) et gèrent les guillemets ou les fins de ligne de manière distincte. Le module `csv` vous permet de définir des délimiteurs personnalisés, des règles de citation et des caractères d'échappement via un paramètre 'dialect'. De plus, lors de l'ouverture de fichiers CSV en Python, il est essentiel de transmettre `newline=''` à la fonction `open()` pour éviter les problèmes de lignes vides sur différents systèmes d'exploitation.
Sortie de code et d'exécution
Écrire des données dans un fichier CSV à l'aide de DictWriter et les relire avec DictReader.
import csv
filename = "employees.csv"
fieldnames = ["id", "name", "department"]
data = [
{"id": "101", "name": "Bob", "department": "HR"},
{"id": "102", "name": "Alice", "department": "Engineering"}
]
# Write dict data to CSV
with open(filename, "w", newline="") as csvfile:
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
writer.writerows(data)
print("CSV written successfully.\n--- Reading CSV ---")
# Read CSV data back as dictionaries
with open(filename, "r", newline="") as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
print(f"Employee {row['name']} works in {row['department']}.")CSV written successfully.
--- Reading CSV ---
Employee Bob works in HR.
Employee Alice works in Engineering.Mise en œuvre étape par étape
- Exportation d'enregistrements de feuille de calcul pour l'analyse financière
- Importation de catalogues de listes de contacts dans des bases de données
- Formatage des sorties statistiques à partir de scripts informatiques
Foire aux questions
Pourquoi dois-je spécifier newline="" lors de l'ouverture d'un fichier CSV ?
Ceci est requis par le rédacteur interne du module csv pour empêcher l'insertion de lignes vides supplémentaires, en particulier sur les plates-formes Windows.
Comment puis-je analyser un fichier CSV qui utilise des tabulations au lieu de virgules ?
Vous pouvez transmettre le paramètre delimiter au lecteur ou à l'écrivain, par exemple csv.reader(file, delimiter='\t').
Sujets connexes
Apprenez à lire et écrire des fichiers en Python. Maîtrisez open(), read(), write() et les gestionnaires de contexte pour gérer les opérations sur les fichiers en toute sécurité sans fuite de ressources.
Analyse Python JSONApprenez à lire, écrire et analyser des données JSON en Python. Maîtrisez json.loads, json.dumps et personnalisez les encodeurs/décodeurs JSON.
Ressources Python recommandées
Développez vos connaissances avec des didacticiels interactifs, des aide-mémoire et des comparaisons de codes associés.
Comment lire et analyser un fichier CSV en Python
Apprenez à lire et à analyser des fichiers CSV en Python à l'aide du module csv intégré. Maîtrisez la lecture sous forme de listes, de lecteurs de dictionnaire et de délimiteurs personnalisés.
Aide-mémoire sur les méthodes de chaîne Python
Un guide de référence complet pour la manipulation des chaînes Python. Maîtrisez le formatage, la recherche, le fractionnement, le remplacement et la vérification des propriétés des chaînes.
Python vs JavaScript : quel langage de programmation est le meilleur ?
Une comparaison complète entre Python et JavaScript. Explorez les différences de syntaxe, les performances, les cas d'utilisation (backend et frontend) et des exemples de codage.