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.
Aperçu
CSV (Comma-Separated Values) est un format de fichier omniprésent pour stocker des ensembles de données tabulaires. Qu'il s'agisse d'importer des bases de données, d'exporter des feuilles de calcul ou de télécharger des journaux, la lecture CSV est une compétence essentielle. Python comprend un module « csv » intégré dédié et hautement optimisé pour analyser facilement les fichiers CSV sans avoir besoin de bibliothèques tierces comme pandas.
La fonction `csv.reader` lit un fichier ligne par ligne et l'analyse, divisant chaque ligne par le délimiteur virgule et renvoyant des listes de chaînes. Si votre fichier CSV a une ligne d'en-tête (par exemple, des étiquettes de colonnes), l'utilisation de « csv.DictReader » est souvent préférable. Il analyse automatiquement chaque ligne dans un dictionnaire où les clés sont les étiquettes des colonnes, ce qui rend le code beaucoup plus lisible et robuste aux changements dans l'ordre des colonnes.
Lors de l'ouverture de fichiers CSV, il est recommandé de définir `newline=""` dans l'instruction `open()`. Cela empêche Python d'effectuer des traductions automatiques de nouvelle ligne, ce qui peut entraîner des erreurs d'analyse sur certains systèmes d'exploitation. De plus, spécifiez toujours `encoding="utf-8"` pour gérer les caractères spéciaux.
Sortie de code et d'exécution
Ce script montre l'écriture d'un exemple de fichier CSV et sa lecture à l'aide de csv.reader et csv.DictReader.
import csv
# Writing a sample CSV file
sample_content = [
["name", "role", "salary"],
["Alice", "Developer", "90000"],
["Bob", "Manager", "110000"]
]
with open("employees.csv", "w", newline="", encoding="utf-8") as f:
writer = csv.writer(f)
writer.writerows(sample_content)
# 1. Reading CSV using csv.reader (List representation)
print("--- Using csv.reader ---")
with open("employees.csv", "r", newline="", encoding="utf-8") as file:
reader = csv.reader(file)
header = next(reader) # Skip header row
print("Header:", header)
for row in reader:
print(f"Employee: {row[0]} | Role: {row[1]}")
# 2. Reading CSV using csv.DictReader (Dictionary representation)
print("\n--- Using csv.DictReader ---")
with open("employees.csv", "r", newline="", encoding="utf-8") as file:
dict_reader = csv.DictReader(file)
for row in dict_reader:
print(f"Name: {row['name']} | Role: {row['role']} | Salary: {row['salary']}")--- Using csv.reader ---
Header: ['name', 'role', 'salary']
Employee: Alice | Role: Developer
Employee: Bob | Role: Manager
--- Using csv.DictReader ---
Name: Alice | Role: Developer | Salary: 90000
Name: Bob | Role: Manager | Salary: 110000Mise en œuvre étape par étape
- Importez le module csv intégré dans votre script.
- Ouvrez le fichier CSV en utilisant open("employees.csv", "r", newline="", encoding="utf-8") comme fichier.
- Transmettez l'objet fichier à csv.reader(file) pour analyser les lignes du fichier sous forme de listes de chaînes.
- Utilisez csv.DictReader(file) pour analyser les lignes en tant que mappages de dictionnaire correspondant aux en-têtes de colonnes.
Foire aux questions
Pourquoi dois-je définir newline="" lors de l'ouverture d'un fichier CSV ?
La définition de newline="" empêche Python de modifier dynamiquement les caractères de fin de ligne, garantissant ainsi que le module csv peut analyser correctement les nouvelles lignes de style csv sur différents systèmes d'exploitation.
Comment analyser un fichier CSV qui utilise des tabulations ou des points-virgules au lieu de virgules ?
Vous pouvez transmettre un délimiteur personnalisé à la fonction de lecture : csv.reader(file, delimiter="\t") ou csv.reader(file, delimiter=";").
Sujets connexes
Apprenez à lire des fichiers en Python. Maîtrisez l'instruction with open, readline, readlines et gérez en toute sécurité les exceptions de fichiers.
Comment écrire dans un fichier en PythonApprenez à écrire du texte dans des fichiers en Python. Maîtrisez la différence entre les modes d'écriture ("w") et d'ajout ("a") avec des gestionnaires de contexte sécurisés.
Ressources Python recommandées
Développez vos connaissances avec des didacticiels interactifs, des aide-mémoire et des comparaisons de codes associés.
E/S de fichier Python
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.
Aide-mémoire sur les opérations de fichiers Python
Référence rapide pour lire et écrire des fichiers en Python. Maîtrisez les modes ouverts, les gestionnaires de contexte et la lecture ligne par ligne.
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.