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.
Dans ce tutoriel, vous apprendrez:
- Qu'est-ce qu'un fichier CSV?
- Fichier d'exemple CSV.
- Module CSV Python
- Fonctions du module CSV
- Lire des fichiers CSV
- Lire comme dictionnaire
- Écriture dans des fichiers CSV
- Lire des fichiers CSV avec des pandas
- Écriture dans des fichiers CSV avec des pandas
Fichier d'exemple CSV.
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.
Considérez le Tabe suivant
Données de table
Langage de programmation | Conçu par | Apparu | Extension |
Python | Guido van Rossum | 1991 | .py |
Java | James Gosling | 1995 | .Java |
C ++ | Bjarne Stroustrup | 1983 | .cpp |
Vous pouvez représenter cette table en csv comme ci-dessous.
Données CSV
Langage de programmation, conçu par, apparu, extension
Python, Guido van Rossum, 1991, .py
Java, James Gosling, 1995, .java
C ++, Bjarne Stroustrup, 1983, .cpp
Comme vous pouvez le voir, chaque ligne est une nouvelle ligne et chaque colonne est séparée par une virgule. Voici un exemple de l'apparence d'un fichier CSV.
Télécharger les données CSV
Module CSV 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.
Fonctions du module CSV
Dans la documentation du module CSV, vous pouvez trouver les fonctions suivantes:
- csv.field_size_limit - renvoie la taille maximale du champ
- csv.get_dialect - récupère le dialecte associé au nom
- csv.list_dialects - affiche tous les dialectes enregistrés
- csv.reader - lit des données à partir d'un fichier csv
- csv.register_dialect - associe le dialecte au nom
- csv.writer - écrit des données dans un fichier csv
- csv.unregister_dialect - supprime le dialecte associé au nom du registre de dialectes
- csv.QUOTE_ALL - Cite tout, quel que soit le type.
- csv.QUOTE_MINIMAL - Citer les champs avec des caractères spéciaux
- csv.QUOTE_NONNUMERIC - Cite tous les champs qui ne sont pas une valeur numérique
- csv.QUOTE_NONE - Ne cite rien dans la sortie
Dans ce didacticiel, 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.
Comment lire un fichier CSV
Pour lire des données à partir de fichiers CSV, vous devez utiliser la fonction de lecture pour générer un objet de lecture.
La fonction de lecture 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.
#import necessary modulesimport csvwith open('X:\data.csv','rt')as f:data = csv.reader(f)for row in data:print(row)
Lorsque vous exécutez le programme ci-dessus, la sortie sera:
['Programming language; Designed by; Appeared; Extension']['Python; Guido van Rossum; 1991; .py']['Java; James Gosling; 1995; .java']['C++; Bjarne Stroustrup;1983;.cpp']
Comment lire un CSV sous forme de 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
#import necessary modulesimport csvreader = csv.DictReader(open("file2.csv"))for raw in reader:print(raw)
Le résultat de ce code est:
OrderedDict([('Programming language', 'Python'), ('Designed by', 'Guido van Rossum'), (' Appeared', ' 1991'), (' Extension', ' .py')])OrderedDict([('Programming language', 'Java'), ('Designed by', 'James Gosling'), (' Appeared', ' 1995'), (' Extension', ' .java')])OrderedDict([('Programming language', 'C++'), ('Designed by', ' Bjarne Stroustrup'), (' Appeared', ' 1985'), (' Extension', ' .cpp')])
Et cette façon de lire des données à partir d'un fichier CSV est beaucoup plus facile que la méthode précédente. Cependant, ce n'est pas la meilleure façon de lire les données.
Comment écrire 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. Nous écrivons des données dans un fichier "writeData.csv" où le délimiteur est une apostrophe.
#import necessary modulesimport csvwith open('X:\writeData.csv', mode='w') as file:writer = csv.writer(file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)#way to write to csv filewriter.writerow(['Programming language', 'Designed by', 'Appeared', 'Extension'])writer.writerow(['Python', 'Guido van Rossum', '1991', '.py'])writer.writerow(['Java', 'James Gosling', '1995', '.java'])writer.writerow(['C++', 'Bjarne Stroustrup', '1985', '.cpp'])
Le résultat dans le fichier csv est:
Programming language, Designed by, Appeared, ExtensionPython, Guido van Rossum, 1991, .pyJava, James Gosling, 1995, .javaC++, Bjarne Stroustrup,1983,.cpp
Lire des fichiers CSV avec des 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.
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:
#import necessary modulesimport pandasresult = pandas.read_csv('X:\data.csv')print(result)
Résultat:
Programming language, Designed by, Appeared, Extension0 Python, Guido van Rossum, 1991, .py1 Java, James Gosling, 1995, .java2 C++, Bjarne Stroustrup,1983,.cpp
Bibliothèque 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.
Écriture dans des fichiers CSV avec des 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 suivant.
from pandas import DataFrameC = {'Programming language': ['Python','Java', 'C++'],'Designed by': ['Guido van Rossum', 'James Gosling', 'Bjarne Stroustrup'],'Appeared': ['1991', '1995', '1985'],'Extension': ['.py', '.java', '.cpp'],}df = DataFrame(C, columns= ['Programming language', 'Designed by', 'Appeared', 'Extension'])export_csv = df.to_csv (r'X:\pandaresult.csv', index = None, header=True) # here you have to write path, where result file will be storedprint (df)
Voici la sortie
Programming language, Designed by, Appeared, Extension0 Python, Guido van Rossum, 1991, .py1 Java, James Gosling, 1995, .java2 C++, Bjarne Stroustrup,1983,.cpp
Et le fichier CSV est créé à l'emplacement spécifié.
Conclusion
Donc, maintenant vous savez comment utiliser la méthode 'csv' et aussi lire et écrire des données au format CSV. 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 pour le traitement et la transmission.
Le module csv fournit diverses fonctions et classes qui vous permettent de lire et d'écrire facilement. Vous pouvez consulter la documentation officielle de Python et trouver des conseils et des modules plus intéressants. CSV est le meilleur moyen d'enregistrer, d'afficher et d'envoyer des données. 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.
Pandas est une excellente alternative pour lire les fichiers CSV.
En outre, il existe d'autres moyens d'analyser des fichiers texte avec des bibliothèques telles que ANTLR, PLY et PlyPlus. Ils peuvent tous gérer une analyse intensive, et si une simple manipulation de String ne fonctionne pas, il existe des expressions régulières que vous pouvez utiliser.