Comment lire et écrire des fichiers CSV en Python

Le format CSV est le format d'importation et d'exportation le plus utilisé pour les bases de données et les feuilles de calcul. Ce tutoriel donnera une introduction détaillée aux fichiers CSV et aux modules et classes disponibles pour la lecture et l'écriture de données dans des fichiers CSV. Il couvrira également un exemple de travail pour vous montrer comment lire et écrire des données dans un fichier CSV en Python..

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

Un fichier CSV (valeurs séparées par des virgules) permet d’enregistrer les données dans une structure tabulaire avec une extension .csv. Les fichiers CSV ont été largement utilisés dans les applications de commerce électronique car ils sont considérés comme très faciles à traiter. Certains des domaines où ils ont été utilisés incluent:

  • importation et exportation des données client
  • importation et exportation de produits
  • commandes d'exportation
  • exportation de rapports analytiques sur le commerce électronique

Modules de lecture et d'écriture

Le module CSV dispose de plusieurs fonctions et classes disponibles pour la lecture et l’écriture de fichiers CSV. Ces fonctions comprennent:

  • fonction csv.reader
  • fonction csv.writer
  • classe csv.Dictwriter
  • classe csv.DictReader

csv.reader

Le module csv.reader prend les paramètres suivants:

  • csvfile: C’est généralement un objet qui prend en charge le protocole itérateur et qui retourne généralement une chaîne __suivant__() la méthode s'appelle.
  • dialecte = 'excelle': Paramètre facultatif utilisé pour définir un ensemble de paramètres spécifiques à un dialecte CSV particulier.
  • fmtparam: Paramètre facultatif pouvant être utilisé pour remplacer les paramètres de formatage existants.

Voici un exemple d'utilisation du module csv.reader.

importer csv avec open ('example.csv', newline = ") en tant que Fichier: lecteur = csv.reader (Fichier) pour la ligne dans le lecteur: print (row)

module csv.writer

Ce module est similaire au module csv.reader et sert à écrire des données sur un fichier CSV. Il faut trois paramètres:

  • CSVFILe: Cepouvezêtre un objet avec un écrire() méthode.
  • dialecte = 'excelle': Paramètre facultatif utilisé pour définir un ensemble de paramètres spécifiques à un fichier CSV particulier.
  • fmtparam: Paramètre facultatif pouvant être utilisé pour remplacer les paramètres de formatage existants.

Classes DictReader et DictWriter

DictReader et DictWriter sont des classes disponibles en Python pour la lecture et l'écriture au format CSV. Bien qu'elles soient similaires aux fonctions de lecture et d'écriture, ces classes utilisent des objets dictionnaire pour lire et écrire dans des fichiers csv..

DictReader

Il crée un objet qui mappe les informations lues dans un dictionnaire dont les clés sont données par le noms de champs paramètre. Ce paramètre est facultatif, mais lorsqu'il n'est pas spécifié dans le fichier, les données de la première ligne deviennent les clés du dictionnaire..

Exemple:

importer csv avec open ('name.csv') en tant que csvfile: reader = csv.DictReader (csvfile) pour la rangée du lecteur: print (rangée ['premier_nom'], rangée ['dernier_nom' ']) 

DictWriter

Cette classe est similaire à la classe DictWriter et fait l’inverse: écrire des données dans un fichier CSV. La classe est définie comme CSV.DictWriter(csvfile, noms de champs, restval = ", extrasaction = 'augmenter', dialecte = 'excelle', * args, **kwds)

le noms de champs paramètre définit la séquence de clés qui identifie l'ordre dans lequel les valeurs du dictionnaire sont écrites dans le fichier CSV. Contrairement à DictReader, cette clé n’est pas facultative et doit être définie afin d’éviter les erreurs lors de l’écriture sur un fichier CSV..

Dialectes et formatage

Un dialecte est une classe auxiliaire utilisée pour définir les paramètres d’une lecteur ou écrivain exemple. Les dialectes et les paramètres de formatage doivent être déclarés lors de l'exécution d'une fonction de lecture ou d'écriture.

Plusieurs attributs sont pris en charge par un dialecte:

  • délimiteur: Une chaîne utilisée pour séparer les champs. Par défaut, ','.
  • double citation: Contrôle comment les instances de quotechar apparaissant à l'intérieur d'un champ doit être cité. Peut être vrai ou faux.
  • escapechar: Une chaîne utilisée par l'écrivain pour échapper à la délimiteur si citant est réglé sur QUOTE_NONE.
  • linererminator: Une chaîne utilisée pour terminer les lignes produites par le écrivain. Par défaut, '\ r \ n'.
  • quotechar: Une chaîne utilisée pour citer des champs contenant des caractères spéciaux. Par défaut,'"'.
  • skipinitialspace: Si défini sur Vrai, tout espace blanc suivant immédiatement la délimiteur est ignoré.
  • strict: Si défini surVrai, il soulève une exception Erreur sur une mauvaise entrée CSV.
  • citant: Contrôle quand les guillemets doivent être générés lors de la lecture ou de l'écriture sur un fichier CSV.

Lecture d'un fichier CSV

Voyons comment lire un fichier CSV en utilisant les modules d'assistance décrits plus haut..

Créez votre fichier CSV et enregistrez-le sous exemple.csv. Assurez-vous qu'il a le .CSV extension et remplissez quelques données. Ici nous avons notre fichier CSV qui contient les noms des étudiants et leurs notes.

Vous trouverez ci-dessous le code permettant de lire les données dans notre CSV en utilisant à la fois csv.reader fonction et la csv.DictReader classe.

Lecture d'un fichier CSV avec csv.reader

importer csv avec open ('example.csv') comme fichier: lecteur = csv.reader (fichier, délimiteur = ",", quotechar = ",", citation = csv.QUOTE_MINIMAL) pour la ligne du lecteur: print (row) 

Dans le code ci-dessus, nous importons le module CSV puis ouvrons notre fichier CSV en tant que Fichier. Nous définissons ensuite l’objet lecteur et utilisons le csv.reader méthode pour extraire les données dans l'objet. Nous parcourons ensuite le lecteur objet et récupérer chaque ligne de nos données.

Nous montrons les données lues en imprimant son contenu sur la console. Nous avons également spécifié les paramètres requis, tels que délimiteur, quotechar et quoting.

Sortie

['first_name', 'last_name', 'Grade'] ['Alex', 'Brian', 'B'] ['Rachael', 'Rodriguez', 'A'] ['Tom', 'smith', 'C '] 

Lecture d'un fichier CSV avec DictReader

Comme nous l’avons mentionné ci-dessus, DictWriter nous permet de lire un fichier CSV en mappant les données dans un dictionnaire au lieu de chaînes, comme dans le cas du fichier. csv.reader module. Bien que le nom de champ soit un paramètre facultatif, il est important de toujours étiqueter vos colonnes pour en améliorer la lisibilité..

Voici comment lire un fichier CSV à l'aide de la classe DictWriter.

importer les résultats csv = [] avec open ("example.csv") en tant que fichier: lecteur = csv.DictReader (fichier) pour la ligne dans le lecteur: résultats.append (ligne) afficher les résultats 

Nous importons d’abord le module csv et initialisons une liste vide résultats que nous allons utiliser pour stocker les données récupérées. Nous définissons ensuite l’objet lecteur et utilisons le csv.DictReader méthode pour extraire les données dans l'objet. Nous parcourons ensuite le lecteur objet et récupérer chaque ligne de nos données.

Enfin, nous ajoutons chaque ligne à la liste des résultats et en imprimons le contenu sur la console..

Sortie

['Grade': 'B', 'prenom': 'Alex', 'last_name': 'Brian', '' grade ':' A ',' first_name ':' Rachael ',' last_name ':' Rodriguez ', ' Grade ':' C ',' prénom_nom ':' Tom ',' dernier nom ':' smith ', ' Grade ':' B ',' prénom ':' Jane ',' dernier nom ': 'Oscar', 'Grade': 'A', 'prenom': 'Kennzy', 'prénom_nom': 'Tim'] 

Comme vous pouvez le voir ci-dessus, l’utilisation de la classe DictReader est préférable car elle fournit nos données dans un format de dictionnaire plus facile à utiliser..

Écrire dans un fichier CSV

Voyons maintenant comment écrire des données dans un fichier CSV en utilisant le csv.writer fonction et la csv.Dictwriter classe discutée au début de ce tutoriel.

Ecrire dans un fichier CSV en utilisant csv.writer

Le code ci-dessous écrit les données définies dans le exemple2.csv fichier.

importer csv myData = [["prénom_nom", "deuxième nom", "grade"], ['Alex', 'Brian', 'A'], ['Tom', 'Smith', 'B']] monFichier = ouvert ('example2.csv', 'w') avec myFile: writer = csv.writer (myFile) writer.writerows (myData) print ("Écriture terminée") 

Nous importons d’abord le module csv et le écrivain() fonction va créer un objet approprié pour l'écriture. Pour itérer les données sur les lignes, nous devrons utiliser le writerows () une fonction.

Voici notre CSV avec les données que nous avons écrites.

Écrire dans un fichier CSV avec DictWriter

Ecrivons les données suivantes sur un CSV.

data = ['Grade': 'B', 'prenom': 'Alex', 'last_name': 'Brian', 'grade': 'A', 'first_name': 'Rachael', 'last_name': 'Rodriguez', 'Grade': 'C', 'prénom_nom': 'Tom', 'nom dernier': 'smith', 'Grade': 'B', 'prénom': 'Jane', 'nom dernier ':' Oscar ', ' Grade ':' A ',' prenom ':' Kennzy ',' prénom_nom ':' Tim '] 

Le code est comme indiqué ci-dessous.

importer csv avec open ('example4.csv', 'w') en tant que csvfile: noms de champs = ['prénom_nom', 'nom de famille', 'Grade'] 'writer = csv.DictWriter (csvfile, noms de champs = noms de champs) writer.writeheader () writer.writerow ('Grade': 'B', 'prenom': 'Alex', 'last_name': 'Brian') writer.writerow ('grade': 'A', 'prenom': 'Rachael' , 'last_name': 'Rodriguez') writer.writerow ('Grade': 'B', 'prenom': 'Jane', 'last_name': 'Oscar' ') writer.writerow (' Grade '': ' B ',' first_name ':' Jane ',' last_name ':' Loive ') print ("Écriture terminée")

Nous définissons d'abord le noms de champs, qui représentera les en-têtes de chaque colonne du fichier CSV. le writeerrow () méthode va écrire sur une ligne à la fois. Si vous voulez écrire toutes les données en même temps, vous utiliserez le writeerrows () méthode.

Voici comment écrire sur toutes les lignes à la fois.

importer csv avec open ('example5.csv', 'w') en tant que csvfile: noms de champs = ['prénom_nom', 'nom de famille', 'Grade'] 'writer = csv.DictWriter (csvfile, noms de champs = noms de champs) writer.writeheader () writer.writerows (['Grade': 'B', 'prenom': 'Alex', 'last_name': 'Brian', 'grade': 'A', 'first_name': 'Rachael', 'last_name ':' Rodriguez ', ' Grade ':' C ',' First_name ':' Tom ',' Last_name ':' smith ', ' Grade ':' B ',' first_name ':' Jane ', 'last_name': 'Oscar', 'Grade': 'A', 'prenom': 'Kennzy', 'last_name': 'Tim']) print ("écriture terminée")

Conclusion

Ce tutoriel a couvert la plupart des tâches nécessaires pour pouvoir lire et écrire dans un fichier CSV avec les différentes fonctions et classes fournies par Python. Les fichiers CSV sont largement utilisés dans les applications logicielles car ils sont faciles à lire et à gérer et leur petite taille les rend relativement rapides à traiter et à transférer..

N'hésitez pas à voir ce que nous avons disponible à la vente et à étudier sur le marché, et n'hésitez pas à poser des questions et à fournir vos précieux commentaires en utilisant le flux ci-dessous.

Apprendre le python

Apprenez Python avec notre guide complet de tutoriel sur Python, que vous soyez débutant ou que vous soyez un codeur chevronné cherchant à acquérir de nouvelles compétences..