Définition: CSV (valeur séparée par des virgules) est similaire à un fichier texte où les données stockées sont séparées par un délimiteur (généralement une virgule). Chaque champ est séparé par un délimiteur. En Python, les fichiers CSV sont traités à l'aide du module CSV. Donc, nous devons importer ce module.
Ex: importer csv
L'exemple ci-dessous montre la façon dont les données sont stockées dans un fichier CSV. Ici, une virgule est utilisée comme délimiteur.
Nom de fichier : person_info.csv
prénom, deuxième prénom, nom, âge
Anand, kumar, maths, 31
Sachin,ramesh,tendulakar,40
Virendra, sehwag, singh, 38
Rahul, dravid, xyz, 40
Le fichier CSV peut être ouvert dans l'un des modes suivants :
r -> mode lecture
w -> mode d'écriture
a -> mode ajout
En Python, une opération de fichier est effectuée dans l'ordre suivant :
- Ouvrez un fichier ;
- Lire, écrire ou ajouter. Lorsque nous spécifions le mode d'écriture, le fichier sera ouvert en mode d'écriture si le fichier existe, sinon, il va créer un fichier. Ceci est également applicable pour le mode d'ajout. En mode lecture, si un fichier existe, il ouvrira le fichier en mode lecture, sinon, il lève l'exception FileNotFoundError ; et
- Fermez le fichier.
Ouvrir un fichier csv
La méthode intégrée open() est utilisée.
Ex:
- f = open ("nom de fichier.csv”,”r”) # En csv python par défaut est le mode lecture
- f = open ("nom de fichier.csv”,'w') # mode d'écriture
Fermeture d'un fichier
La méthode intégrée close() est utilisée.
fp = open("nom de fichier.csv",'w')# effectuer certaines opérations sur les fichiers
fp.Fermer()
Opérations sur les fichiers utilisant avec
La meilleure façon d'effectuer une opération de fichier CSV, et la méthode la plus couramment utilisée, consiste à utiliser l'instruction. L'utilisation de ceci garantit que le fichier est fermé lorsque le bloc à l'intérieur avec est quitté.
Ex:
avec open('nom de fichier.csv', 'w', encoding = 'utf-8') en tant que fp :#effectuer certaines opérations sur les fichiers
#instructions en dehors du bloc with
Lorsque nous sortons avec block, le fichier sera fermé automatiquement.
Écrire dans un fichier CSV
Pour écrire dans un fichier CSV, nous devons l'ouvrir en mode écriture 'w' ou ajouter 'a'.
Dans l'exemple ci-dessous, nous allons lire à partir d'un fichier et écrire dans un nouveau fichier.
importer csvavec open('nom de fichier.csv','r') en tant que fp :
lecteur = csv.lecteur(fp)#lire le fichier
avec open('nouveau nom de fichier.csv','w') en tant que fq :
écrivain = csv.écrivain(fq, délimiteur = '-')
pour la ligne dans le lecteur : # Pour itérer sur chaque ligne
écrivain.writerow(line)#écrire la ligne dans un nouveau fichier
Utiliser le rédacteur de dictionnaire
Dans l'exemple ci-dessous, nous allons lire à partir d'un fichier et écrire dans un nouveau fichier à l'aide de la méthode DictWriter().
importer csvavec open('nom de fichier.csv','r') en tant que fp :
lecteur = csv.DictReader(fp)#lire le fichier
avec open('nouveau nom de fichier.csv','w',newline=") as fq:#newline =" pour éviter d'ajouter une nouvelle ligne supplémentaire
row_names = ['prénom','deuxième prénom','nom','âge']
écrivain = csv.DictWriter(fq, fieldnames = row_names, delimiter = '-')
écrivain.writeheader()#écrire les lignes d'en-tête
pour la ligne dans le lecteur :
écrivain.écrireligne(ligne)
Writerows()
Cette méthode écrit plusieurs lignes à la fois ; nous devons passer une liste de listes. Ex:
importer csvhead_names = ['prénom','deuxième prénom','nom','âge']
# lignes de données du fichier csv
lignes = [['Anand','kumar','math',31],
['Sachin','ramesh','tendulakar',40],
['Virendra','sehwag','singh',38],
['Rahul','dravid','xyz',40]]
# écriture dans un fichier csv
avec open('nouveau nom de fichier.csv', 'w') en tant que fp :
# création d'un objet écrivain csv
csvwriter = csv.écrivain(fp)
# écrire le titre
csvwriter.writerow(head_names)
# écrire les lignes de données
csvwriter.écrirelignes(lignes)
Lecture à partir d'un fichier
Pour lire le fichier CSV en Python, il faut ouvrir le fichier en mode lecture 'r'. Ex:
importer csvavec open('nom de fichier.csv','r') en tant que fp :
données = csv.lecteur(fp)
# le délimiteur par défaut est une virgule, si csv séparé par un autre délimiteur doit être spécifié
#Ex données = csv.lecteur(fp, délimiteur = '-')
print(data) # il renvoie l'objet
#sauter l'en-tête
next(data)#call la méthode suivante du générateur
pour la ligne dans les données : # Pour itérer sur chaque ligne
print(line) # imprime chaque valeur dans une liste
fp.seek(0)# amène le curseur à la première ligne
pour la ligne dans les données :
print(line[0])# n'affiche que les prénoms
Utiliser le lecteur de dictionnaire
Pour lire le fichier csv à l'aide de la méthode DictReader().
importer csvavec open('nom de fichier.csv','r') en tant que fp :
lecteur = csv.DictReader(fp)#lire le fichier
pour la ligne dans le lecteur :
print(line)#imprimer chaque ligne sous forme de dictionnaire
fp.seek(0)# amène le curseur à la première ligne
pour les données dans le lecteur :
print(data['age'])#nous ne pouvons imprimer que l'âge en utilisant la clé 'age'
Conclusion
Nous avons appris à lire et à écrire un fichier en utilisant le module CSV. Le fichier CSV est le format de fichier le plus couramment utilisé dans l'industrie de l'automatisation car il est facile à lire et à modifier les données. De plus, Pandas est une autre méthode que nous pouvons utiliser pour traiter les fichiers CSV.