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..
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:
Le module CSV dispose de plusieurs fonctions et classes disponibles pour la lecture et l’écriture de fichiers CSV. Ces fonctions comprennent:
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)
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.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..
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' '])
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..
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:
','
.QUOTE_NONE
.écrivain
. Par défaut, '\ r \ n'
.'"'
.Vrai
, tout espace blanc suivant immédiatement la délimiteur est ignoré.Vrai
, il soulève une exception Erreur sur une mauvaise entrée 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.
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 ']
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..
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.
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.
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")
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.
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..