Comment gérer les fichiers CSV dans Python

Comment gérer les fichiers CSV dans Python
Cet article couvrira un tutoriel sur la gestion des fichiers «CSV» à l'aide de Python. Le terme «CSV» signifie «valeurs séparées par virgules» où chaque ligne ou ligne contient des valeurs de texte délimitées par des virgules. Dans certains cas, «semi-colon» est également utilisé à la place de «virgule» pour séparer les valeurs. Cependant, cela ne fait pas beaucoup de différence pour les règles de format de fichiers et la logique pour gérer les deux types de séparateurs reste la même.

Le format de fichier CSV est le plus souvent utilisé pour maintenir les bases de données et les feuilles de calcul. La première ligne d'un fichier CSV est le plus souvent utilisée pour définir les champs de colonne tandis que toutes les autres lignes restantes sont considérées comme des lignes. Cette structure permet aux utilisateurs de présenter des données tabulaires à l'aide de fichiers CSV. Les fichiers CSV peuvent être modifiés dans n'importe quel éditeur de texte. Cependant, des applications comme LibreOffice Calc fournissent des outils d'édition avancés, des fonctions et des fonctions de filtre.

Lire les données des fichiers CSV à l'aide de Python

Le module CSV dans Python vous permet de lire, écrire et manipuler toutes les données stockées dans des fichiers CSV. Afin de lire un fichier CSV, vous devrez utiliser la méthode «lecteur» du module «CSV» de Python qui est inclus dans la bibliothèque standard de Python.

Considérez que vous avez un fichier CSV contenant des données suivantes:

Mangue, banane, pomme, orange
50,70,30,90

La première ligne du fichier définit chaque catégorie de colonne, nom des fruits dans ce cas. La deuxième ligne stocke les valeurs sous chaque colonne (stock en main). Toutes ces valeurs sont délimitées par une virgule. Si vous deviez ouvrir ce fichier dans une application de feuille de calcul comme LibreOffice Calc, cela ressemblerait à ceci:

Maintenant pour lire les valeurs de «fruits.Fichier CSV "Utilisation du module" CSV "de Python, vous devrez utiliser la méthode" lecteur "dans le format suivant:

Importer CSV
avec ouvert ("fruits.CSV ") comme fichier:
data_reader = csv.lecteur (fichier)
pour la ligne dans data_reader:
Imprimer (ligne)

La première ligne de l'échantillon ci-dessus importe le module «CSV». Ensuite, la déclaration «avec Open» est utilisée pour ouvrir en toute sécurité un fichier stocké sur votre disque dur («Fruits.CSV »dans ce cas). Un nouvel objet «data_reader» est créé en appelant la méthode «lecteur» à partir du module «CSV». Cette méthode «lecteur» prend un nom de fichier comme argument obligatoire, donc la référence aux «fruits.csv ”y est transmis. Ensuite, une instruction de boucle «pour» est exécutée pour imprimer chaque ligne des «fruits.Fichier CSV ". Après avoir exécuté l'échantillon de code mentionné ci-dessus, vous devez obtenir la sortie suivante:

['50', '70', '30', '90']

Si vous souhaitez attribuer des numéros de ligne à la sortie, vous pouvez utiliser la fonction «énumérer» qui attribue un numéro à chaque élément dans un itérable (à partir de 0 sauf modification).

Importer CSV
avec ouvert ("fruits.CSV ") comme fichier:
data_reader = csv.lecteur (fichier)
Pour l'index, ligne en énumération (data_reader):
Imprimer (index, ligne)

La variable «Index» maintient le décompte pour chaque élément. Après avoir exécuté l'échantillon de code mentionné ci-dessus, vous devez obtenir la sortie suivante:

0 [«mangue», «banane», «pomme», «orange»]
1 ['50', '70', '30', '90']

Étant donné que la première ligne d'un fichier «CSV» contient généralement des en-têtes de colonne, vous pouvez utiliser la fonction «énumérer» pour extraire ces titres:

Importer CSV
avec ouvert ("fruits.CSV ") comme fichier:
data_reader = csv.lecteur (fichier)
Pour l'index, ligne en énumération (data_reader):
Si index == 0:
rubriques = ligne
Imprimer (titres)

Le bloc «if» dans l'instruction ci-dessus vérifie si l'index est égal à zéro (première ligne dans «Fruits.fichier csv ”). Si oui, alors la valeur de la variable «ligne» est attribuée à une nouvelle variable «titres». Après, exécutant l'échantillon de code ci-dessus, vous devriez obtenir la sortie suivante:

[«Mangue», «banane», «pomme», «orange»]

Notez que vous pouvez utiliser votre propre délimiteur lorsque vous appelez «CSV.Méthode lecteur "En utilisant un argument" Demiter "facultatif dans le format suivant:

Importer CSV
avec ouvert ("fruits.CSV ") comme fichier:
data_reader = csv.lecteur (fichier, délimiter = ";")
pour la ligne dans data_reader:
Imprimer (ligne)

Étant donné que dans un fichier CSV, chaque colonne est associée aux valeurs en ligne, vous pouvez créer un objet «Dictionnaire» Python lors de la lecture des données d'un fichier «CSV». Pour ce faire, vous devez utiliser la méthode «dictreader», comme indiqué dans le code ci-dessous:

Importer CSV
avec ouvert ("fruits.CSV ") comme fichier:
data_reader = csv.DiCtreader (fichier)
pour la ligne dans data_reader:
Imprimer (ligne)

Après avoir exécuté l'échantillon de code mentionné ci-dessus, vous devez obtenir la sortie suivante:

'Mango': '50', 'Banana': '70', 'Apple': '30', 'Orange': '90'

Alors maintenant, vous avez un objet de dictionnaire qui associe des colonnes individuelles à leurs valeurs correspondantes dans les lignes. Cela fonctionne bien si vous n'avez qu'une seule ligne. Supposons que les «fruits.Le fichier CSV »comprend désormais une ligne supplémentaire qui spécifie le nombre de jours qu'il faudra au stock de fruits pour périr.

Mangue, banane, pomme, orange
50,70,30,90
3,1,6,4

Lorsque vous avez plusieurs lignes, exécuter le même échantillon de code ci-dessus produira une sortie différente.

'Mango': '50', 'Banana': '70', 'Apple': '30', 'Orange': '90'
'Mango': '3', 'Banana': '1', 'Apple': '6', 'Orange': '4'

Cela peut ne pas être idéal car vous voudrez peut-être cartographier toutes les valeurs concernant une colonne à une paire de valeurs clés dans un dictionnaire Python. Essayez cet exemple de code à la place:

Importer CSV
avec ouvert ("fruits.CSV ") comme fichier:
data_reader = csv.DiCtreader (fichier)
data_dict =
pour la ligne dans data_reader:
pour la clé, valeur en ligne.articles():
data_dict.setDefault (clé, [])
data_dict [clé].ajouter (valeur)
Imprimer (DATA_DICT)

Après avoir exécuté l'échantillon de code mentionné ci-dessus, vous devez obtenir la sortie suivante:

'Mango': ['50', '3'], 'banana': ['70', '1'], 'Apple': ['30', '6'], 'Orange': ['90 ',' 4 ']

Une boucle «pour» est utilisée sur chaque élément de l'objet «dictreader» pour faire boucle sur les paires de valeurs clés. Une nouvelle variable de dictionnaire Python «Data_Dict» est définie avant cela. Il stockera les mappages de données finaux. Dans le deuxième bloc de boucle «For», la méthode «SetDefault» du dictionnaire Python est utilisée. Cette méthode attribue une valeur à une clé de dictionnaire. Si la paire de valeurs clés n'existe pas, une nouvelle est créée à partir des arguments spécifiés. Donc, dans ce cas, une nouvelle liste vide sera affectée à une clé si elle n'existe pas déjà. Enfin, la «valeur» est annexée à sa clé correspondante dans l'objet final «data_dict».

Rédaction de données dans un fichier CSV

Pour écrire des données dans un fichier «CSV», vous devrez utiliser la méthode «écrivain» du module «CSV». L'exemple ci-dessous ajoutera une nouvelle ligne aux «fruits existants.Fichier CSV ".

Importer CSV
avec ouvert ("fruits.CSV "," A ") en tant que fichier:
data_writer = csv.écrivain (fichier)
data_writer.Writerow ([3,1,6,4])

La première instruction ouvre le fichier en mode «Ajouter», indiqué par l'argument «A». Ensuite, la méthode «écrivain» est appelée et la référence aux «fruits.Le fichier CSV »y est transmis comme un argument. La méthode «Writerow» écrit ou ajoute une nouvelle ligne au fichier.

Si vous souhaitez convertir Python Dictionary en une structure de fichier «CSV» et enregistrer la sortie dans un fichier «CSV», essayez ce code:

Importer CSV
avec ouvert ("fruits.CSV "," W ") comme fichier:
Headings = ["Mango", "banane", "pomme", "orange"]
data_writer = csv.DictWriter (fichier, fieldNames = en-têtes)
data_writer.WriteHeader ()
data_writer.writerow ("mango": 50, "banane": 70, "Apple": 30, "Orange": 90)
data_writer.writerow ("mango": 3, "banane": 1, "Apple": 6, "orange": 4)

Après avoir ouvert un «fruits vides.Fichier CSV "En utilisant une instruction" avec ouverte ", une nouvelle variable" en-têtes "est définie qui contient des en-têtes de colonne. Un nouvel objet «data_writer» est créé en appelant la méthode «dictwriter» et en faisant passer sa référence aux «fruits.Fichier CSV "et un argument" Field Name ". Dans la ligne suivante, les en-têtes de colonne sont écrites dans le fichier à l'aide de la méthode «WriteHeader». Les deux dernières déclarations ajoutent de nouvelles lignes à leurs titres correspondants créés à l'étape précédente.

Conclusion

Les fichiers CSV fournissent un moyen soigné d'écrire des données au format tabulaire. Le module «CSV» intégré de Python facilite la gestion des données disponibles dans les fichiers «CSV» et implémentez une logique supplémentaire.