Tutoriel Python : importer, lire et modifier un fichier CSV

Table des matières :

Introduction 

  1. Qu'est-ce qu'un fichier csv ?
  2. Le module csv de python 

2.1 Fonctions du module csv 

2.2 Les modes d'ouverture d'un fichier csv dans python

3. Comment lire un fichier csv ? 

3.1 Lire un fichier csv en utilisant la fonction reader() 

3.2 Comment lire un csv a l'aide de l'objet dictionnaire

3.3 Lire des fichiers csv avec pandas

4. Comment écrire ou modifier un fichier csv ?

4.1 Créer un fichier csv 

4.2 Modifier ou écrire dans un fichier csv existant

4.3 Ecrire dans un fichier csv avec pandas

5. Cas pratiques

Cas pratiques 1

Cas pratique 2

6. Correction 

Conclusion

Introduction

Dans ce tutoriel, nous vous montrons comment commencer à travailler avec des fichiers csv en python. Que ce soit pour créer de nouveaux fichiers csv en python, modifier des fichiers csv existants en python ou simplement lire un fichier et faire des choses avec les données en python.

Le tutoriel couvre ce processus à l'aide de la bibliothèque intégrée python csv. Il existe d'autres moyens de le faire en python, mais cette méthode est celle qui sera probablement la plus longue, car elle utilise une partie de la bibliothèque python standard. Pour une alternative, on va utiliser des fichiers csv avec des pandas en python.

La première partie du tutoriel détaillera le processus de lecture d'un fichier csv qui existe déjà en python. Vous verrez comment commencer à manipuler les données à l'intérieur du fichier csv car nous les imprimerons à l'écran en utilisant python. Cependant, vous pouvez facilement ajouter les données chargées dans une structure de données pour effectuer toutes les manipulations supplémentaires qui pourraient être nécessaires.

Ensuite, vous apprendrez à créer votre propre fichier csv en utilisant python. Dans notre exemple, nous allons créer un fichier csv qui contient des données de client comme un exemple. Enfin, vous allez comprendre comment écrire dans un fichier csv déjà existant avec python. Il est bon de noter que si vous changez simplement le nom du fichier dans lequel vous souhaitez écrire en utilisant cette méthode, cela génèrera également un tout nouveau fichier csv en addition à utiliser ¨Pandas pour lire et créer un contenu csv.

1. Qu'est-ce qu'un fichier CSV ?

Un fichier CSV est un type de fichier texte brut qui utilise une structure spécifique pour organiser les données tabulaires. CSV est un format courant pour l'échange de données, car il est compact, simple et général. De nombreux services en ligne permettent à ses utilisateurs d'exporter des données tabulaires du site Web dans un fichier CSV. Les fichiers CSV s'ouvriront dans Excel, et presque toutes les bases de données ont un outil pour permettre l'importation à partir d'un fichier CSV. Le format standard est défini par des données de lignes et de colonnes. De plus, chaque ligne se termine par une nouvelle ligne pour commencer la ligne suivante. Toujours dans la ligne, chaque colonne est séparée par une virgule.

Exemple

Les données sous forme de tableaux sont également appelées CSV (valeurs séparées par des virgules) - littéralement « valeurs séparées par des virgules ». Il s'agit d'un format de texte destiné à la présentation de données tabulaires. Chaque ligne du fichier est une ligne du tableau.

Les valeurs des colonnes individuelles sont séparées par un symbole de séparation - une virgule (,), un point-virgule (;) ou un autre symbole. CSV peut être facilement lu et traité par Python.

Tableau De données

Langage de programmation

Créé par

Apparu

Extension

Python

Guido van Rossum

1991

.py

Javascript

Brendan Eich

1995

.js

PHP

Rasmus Lerdorf

1994

.php

Vous pouvez représenter ce tableau en csv comme ci-dessous.

Langage de programmation, créé par, apparu, extension

Python, Guido van Rossum, 1991, .py

JavaScript, Brendan Eich, 1995, .js

PHP, Rasmus Lerdof, 1995, .php

2. Le module CSV de python

Python fournit un module CSV pour gérer les fichiers CSV. Pour lire / écrire des données, vous devez parcourir les lignes du CSV. Vous devez utiliser la méthode de fractionnement pour obtenir des données à partir de colonnes spécifiées.

2.1 Fonctions du module CSV

Dans le tableau suivant, vous pouvez trouver toutes les fonctions liées au module csv :

Fonctions

Interprétations

csv.field_size_limit

Renvoie la taille maximale du champ

csv.get_dialect

Obtenir le dialecte associé au nom

csv.list_dialects

Afficher tous les dialectes enregistrés

csv.reader

csv.register_dialect

Associer le dialecte au nom de fichier

csv.writer

Écrire des données dans un fichier csv

csv.unregister_dialect

Supprimer le dialecte associé au nom du registre des dialectes

csv.QUOTE_ALL 

Citez tout, quel que soit le type.

csv.QUOTE_MINIMAL 

Citer les champs avec des caractères spéciaux

csv.QUOTE_NONNUMERIC 

Citez tous les champs qui ne sont pas des nombres

csv.QUOTE_NONE 

Ne citez rien en sortie

Dans ce tutoriel, nous allons nous concentrer uniquement sur les fonctions de lecture et d'écriture qui vous permettent d'éditer, de modifier et de manipuler les données dans un fichier CSV

2.2 Les modes d'ouverture d'un fichier csv dans python

Les modes d'accès disponibles pour un fichier csv sont les suivants :

r: Ouvre le fichier en mode lecture seule. Démarre la lecture depuis le début du fichier et constitue le mode par défaut de la fonction open ().

rb: ouvre le fichier en lecture seule au format binaire et commence la lecture depuis le début du fichier. Bien que le format binaire puisse être utilisé à des fins différentes, il est généralement utilisé pour traiter des éléments tels que des images, des vidéos, etc.

r +: Ouvre le fichier en lecture et en écriture, en plaçant le pointeur au début du fichier.

w: s'ouvre en mode écriture seule. Le pointeur est placé au début du fichier et cela écrasera tout fichier existant avec le même nom. Il créera un nouveau fichier si un avec le même nom n'existe pas.

wb : ouvre le fichier en écriture seule en mode binaire.

w + : ouvre le fichier pour l'écriture et la lecture.

wb + : Ouvre le fichier pour l'écriture et la lecture en mode binaire.

a : Ouvre le fichier pour y ajouter de nouvelles informations. Le pointeur est placé à la fin du fichier. Un nouveau fichier est créé s'il n'y en a pas avec le même nom.

ab: Ouvre le fichier à ajouter en mode binaire.

a + : ouvre le fichier pour l'ajout et la lecture.

ab + : Ouvre le fichier pour l'ajout et la lecture en mode binaire.

Vous allez mieux comprendre ces modes lorsque vous verrez les exemples de ce didacticiel ci-dessous

3. Comment lire un fichier CSV

Sans l'aide d'un programme spécial pour faire afficher les données du fichier dans un format tabulaire soigné, chaque ligne est juste une ligne dans le fichier. Et chaque valeur unique est séparée par une virgule. Par exemple, ouvrir le fichier illustré dans le tableau dans un éditeur de texte simple comme Notepad ou BlocNote montre ce qui est réellement stocké dans le fichier.

Cela semble beaucoup plus complexe qu'il ne l'est. Jetons un coup d'œil à cet exemple et nous découvrirons que travailler avec un fichier csv n'est pas si difficile.

3.1 Lire un fichier csv en utilisant la fonction Reader()

Pour lire des données à partir de fichiers CSV, vous devez utiliser la fonction de reader pour générer un objet reader.

La fonction reader est développée pour prendre chaque ligne du fichier et faire une liste de toutes les colonnes. Ensuite, vous devez choisir la colonne pour laquelle vous voulez les données variables.

Cela semble beaucoup plus complexe qu'il ne l'est. Jetons un coup d'œil à cet exemple et nous découvrirons que travailler avec un fichier csv n'est pas si difficile.

Syntaxe :

import csv;
f= open (r"C:\Users\HP\Desktop/data.csv")
myReader = csv.reader(f)
for row in myReader:
print(row)

Résultat de l’exécution :

Téléchargez le fichier data.csv pour comprendre facilement : https://drive.google.com/u/0/uc?id=1oM7Porm2bKfHueJphMgZd3o_vHRTuJnC&export=download

3.2 Comment lire un CSV à l'aide de l'objet dictionnaire

Vous pouvez également utiliser DictReader pour lire les fichiers CSV. Les résultats sont interprétés comme un dictionnaire où la ligne d'en-tête est la clé et les autres lignes sont des valeurs.

Considérez le code suivant :

Syntaxe :

import pandas
lire = pandas.read_csv(r"C:\Users\HP\Desktop/data.csv")
print(lire)

Résultat de l’exécution :

Et cette façon de lire les données à partir d'un fichier CSV est beaucoup plus facile. Cependant, ce n'est pas la meilleure façon de lire les données.

3.3 Lire des fichiers CSV avec Pandas

Pandas est une bibliothèque Open Source qui vous permet d'effectuer des manipulations de données en Python. Les pandas offrent un moyen simple de créer, manipuler et supprimer les données.

Parfois vous devez installer la bibliothèque pandas avec la commande pip install pandas . Sous Windows, vous exécuterez cette commande dans l'invite de commande sous Linux dans le terminal.

La lecture du CSV dans un DataFrame pandas est très simple et rapide

Exemple :

Syntaxe :

import csv
reader = csv.DictReader(open(r"C:\Users\HP\Desktop/data.csv"))
for raw in reader:
print(raw)

Résultat d’exécution :

Cette bibliothèque est très utile. En seulement trois lignes de code, vous obtenez le même résultat que précédemment. Les pandas savent que la première ligne du CSV contenait des noms de colonnes, et il les utilisera automatiquement.

3.3.1 Lire uniquement des colonnes spécifiques du fichier CSV

Nous pouvons spécifier le paramètre usecols pour lire des colonnes spécifiques à partir du fichier CSV. Ceci est très utile lorsque le fichier CSV comporte de nombreuses colonnes mais que nous ne nous intéressons qu'à quelques-unes d'entre elles.

Syntaxe :

import pandas
sortie = pandas.read_csv('résultatt.csv', usecols=['E-mail', 'Nom'])
print(emp_df)

Résultat d’exécution :

3.3.2 Lire un fichier CSV sans en-tête

Il n'est pas obligatoire d'avoir une ligne d'en-tête dans le fichier CSV. Si le fichier CSV n'a pas de ligne d'en-tête, nous pouvons toujours le lire en passant header = None à la fonction read_csv ().

Utilisons le même fichier du dernier exemple :

Syntaxe :

import pandas
sortie = pandas.read_csv('résultat.csv', usecols=['E-mail', 'Nom'])
print(sortie)

Résultat d’exécution :

3.3.3 Spécification du délimiteur avec la fonction Pandas read_csv ()

Le délimiteur par défaut d'un fichier CSV est une virgule. Mais nous pouvons également utiliser n'importe quel autre délimiteur. Supposons que notre délimiteur de fichier CSV soit #.

On va exécuter le code suivant :

Syntaxe :

import pandas
sortie = pandas.read_csv('résultat.csv', sep='#',)
print(sortie)

Résultat d’exécution :

4. Comment écrire ou modifier un fichier CSV

4.1 Créer un fichier csv

Lorsque vous avez un ensemble de données que vous souhaitez stocker dans un fichier CSV, vous devez utiliser la fonction writer (). Pour itérer les données sur les lignes (lignes), vous devez utiliser la fonction writerow ().

Prenons l'exemple suivant, on va essayer de créer un fichier csv qui contient les informations des clients

Syntaxe :

import csv
with open('data2.csv','w',newline='') as fichiercsv:
writer=csv.writer(fichiercsv)
writer.writerow(['Nom', 'Prénom'; 'E-mail', 'Télephone'])
writer.writerow(['Depond', 'Marcel', '[email protected]', '1020304050'])
writer.writerow(['Alicat', 'Patricia', '[email protected]', '1224455660'])
writer.writerow(['Muller', 'Antoni', '[email protected]', '1669988445'])
writer.writerow(['Massont', 'Rodulf', '[email protected]', '1669988444']) 

Le résultat dans le fichier csv :

4.2 Modifier ou écrire dans un fichier csv existant 

Pour éditer un fichier csv existant, nous allons utiliser le mode Appendant (a)

Dans cet exemple, nous allons essayer d'ajouter un nouveau client au fichier csv que nous avons créé avant (résultat.csv) :

Syntaxe :

import csv
with open('résultat.csv','a',newline='' encoding='utf-8') as fichiercsv:
writer=csv.writer(fichiercsv)
writer.writerow(['Duprez','Andrée', '[email protected]', '1669987744'])

Ce code ajoutera une nouvelle ligne qui contient les informations client sous la dernière ligne :

Le résultat d’exécution :

Vous trouverez le fichier csv dans le répertoire par défaut ou celui que vous avez spécifié :

4.3 Écrire dans un fichier csv avec Pandas

L'écriture dans un fichier CSV avec Pandas est aussi simple que la lecture. Ici, vous pouvez y convaincre. Vous devez d'abord créer DataFrame basé sur le code d’exemple suivant.

from pandas import DataFrame
C = {'Nom': ['Depond','Alicat', 'Muller','Massont'],
'Prénom': ['Marcel', 'Patricia', 'Antoni','Rudolf'],
'E-mail': ['[email protected]', '[email protected]',
'[email protected]','[email protected]'],
'Télephone': ['1020304050', '.1224455660', '1669988445','1669988444'],
}
données = DataFrame(C, columns= ['Nom', 'Prénom', 'E-mail', 'Télephone'])
export_csv = df.to_csv ('resultat.csv', index = None, header=True, encoding='utf-8', sep=';')
print(données)

Résultat d’exécution :

Un fichier CSV est créé à l'emplacement spécifié :

Remarque : Pour obtenir un fichier csv bien organisé comme celui de l'exemple, essayez d'utiliser le point-virgule (sep=’ ;’) comme délimiteur et utf-8 comme format d'encodage (encoding=’utf-8’).

5. Cas Patiques

Cas pratiques 1 :

Considérez le fichier csv (thé-info.csv) suivant qui contient des informations sur l'infusion de thé :

Questions :

1. Ouvrez le fichier appelé thé-info.csv en mode lecture.

Remarque : il est prévu que le fichier thé-info.csv se trouve dans le même répertoire que votre fichier .py

2. Utilisez csv.reader pour lire le contenu du fichier thé-info.csv.

Les fichiers CSV sont séparés par des virgules et, à ce titre, une virgule est utilisée comme délimiteur

3. Utilisez csv.DictReader pour lire le contenu du fichier thé-info.csv.

4. Utilisez Pandas pour lire le fichier thé-info.csv

Cas pratique 2 :

Données :

Dans le tableau suivant, nous avons des informations sur certains employés et nous voulons les transformer en fichier csv en utilisant python

Nom d'utilisateur

Entreprise

Salaire

William

Google

75

Rudolf

Amazon

43

John

Walmart

65

Dupond

Microsoft

94

Questions :

  1. Ouvrez un fichier appelé nouveau-file.csv en mode écriture.

Remarque : en mode écriture, si le fichier n'existe pas, il sera créé

  1. En utilisant l'objet writer, essayez de créer un fichier csv contenant les données du tableau ci-dessus
  2. Utilisez Pandas pour créer le même fichier

Remarque : Utiliser le semi-colon (;) comme un délimite

6.Crrection :

Cas pratique 1 :

Syntaxe et résultat :

Cas pratique 2 :

Syntaxe et résultat :

Résultat dans le fichier csv :

Conclusion

En arrivant à la fin du tutoriel, je voulais vous dire que vous avez appris les moyens les plus importants d'éditer et de lire un fichier csv en Python.

Les fichiers CSV sont un format de stockage de fichiers pratique que de nombreux développeurs utilisent dans leurs projets. Ils sont petits, faciles à gérer et largement utilisés tout au long du développement logiciel. Heureusement pour vous, Python a un module dédié qui fournit des méthodes et des classes flexibles pour gérer les fichiers CSV de manière simple et efficace.

Dans ce tutoriel, nous vous avons montré comment utiliser le module Python csv pour lire et écrire des données CSV dans un fichier. En plus de cela, nous avons également montré comment créer des dialectes et utiliser des classes d'assistance comme DictReader et DictWriter pour lire et écrire des CSV, en plus de la façon d'utiliser Pandas pour lire / écrire un fichier csv

En fait, ce n'est pas si difficile à apprendre qu'il y paraît au début. Mais avec un peu de pratique, vous le maîtriserez.

Si vous souhaitez approfondir le sujet, vous pouvez en savoir plus sur les fichiers CSV dans la documentation officielle de Python.

Article publié le 06 Novembre 2020par Mouhtat Bilal