Maison >développement back-end >Tutoriel Python >Travailler avec des fichiers CSV à l'aide de Python, avec des exemples

Travailler avec des fichiers CSV à l'aide de Python, avec des exemples

Joseph Gordon-Levitt
Joseph Gordon-Levittoriginal
2025-02-15 08:52:11370parcourir

Travailler avec des fichiers CSV à l'aide de Python, avec des exemples

Les plats clés

    Le module CSV intégré de Python fournit des fonctions et des classes pour la lecture, l'écriture et la gestion des données dans les formats CSV. La fonction CSV.Reader () peut être utilisée pour lire les fichiers CSV, tandis que CSV.Writer () permet d'écrire des données aux fichiers CSV.
  • Les fichiers CSV peuvent être convertis au format JSON à l'aide de la classe CSV.Dictreader de Python, qui convertit un fichier CSV en un dictionnaire Python. Le dictionnaire peut ensuite être converti en un fichier JSON à l'aide de la fonction JSON.dump ().
  • Les fichiers JSON peuvent être convertis au format CSV en utilisant d'abord la fonction json.load () pour convertir le fichier JSON en un dictionnaire Python. Les méthodes de classe CSV.DictWriter peuvent ensuite être utilisées pour convertir le dictionnaire en fichier CSV.
  • Les fichiers CSV sont couramment utilisés pour l'importation et l'exportation de données dans les feuilles de calcul et les bases de données. Le module CSV de Python simplifie le travail avec les fichiers CSV et les convertir en d'autres formats tels que JSON.
Dans cet article, nous apprendrons à utiliser Python pour lire et écrire des données dans des fichiers CSV, et comment convertir les fichiers CSV au format JSON et vice versa. Nous allons explorer comment utiliser le module CSV et également examiner des exemples qui aident à comprendre comment cela fonctionne.

Un fichier CSV (valeurs séparés par des virgules) est un format de fichier texte qui permet d'enregistrer les données dans une structure tabulaire. Il s'agit d'un format populaire utilisé pour l'exportation et l'importation de données à partir de bases de données et de feuilles de calcul.

Comme son nom l'indique, chaque élément de données dans un fichier CSV est séparé par une virgule (,). Parfois, le terme «CSV» peut être utilisé pour décrire des formats avec d'autres types de séparateurs, tels que les colons (:), les demi-colons (;) et les onglets (T). Aux fins de cet article, nous allons simplement faire face aux fichiers CSV qui utilisent des virgules comme délimiteurs (connus sous le nom de RFC 4180).

Lorsqu'il est ouvert, le contenu d'un fichier CSV ressemble à ceci:

Employee Id,First Name,Gender,Start Date,Last Login Time,Salary,Bonus %,Senior Management,Team
1,Douglas,Male,8/6/1993,12:42 PM,,6.945,TRUE,Marketing
2,Thomas,Male,3/31/1996,6:53 AM,61933,4.17,,
3,Maria,Female,4/23/1993,11:17 AM,,11.858,FALSE,Finance
4,Jerry,Male,3/4/2005,1:00 PM,138705,9.34,,Finance
Comme le montre ci-dessus, le délimiteur de virgule, est utilisé pour séparer chaque élément de données spécifique dans le fichier.

La première ligne de données peut éventuellement servir de l'en-tête, identifiant chaque colonne de données en dessous. Les fichiers CSV sont couramment enregistrés avec une extension de fichier .csv.

Le module CSV

Étant donné que les feuilles de calcul et les bases de données comme MS SQL peuvent être importées et exportées sous forme de fichiers CSV, il est important de savoir comment gérer les données desservies au format CSV par programme. La plupart des langages de programmation comme Python prennent en charge la gestion des fichiers dans CSV et les transformant également en d'autres formats comme JSON.

Python fournit le module

CSV pour lire, écrire et effectuer d'autres formes de gestion de fichiers dans les formats CSV. La bibliothèque intégrée fournit des fonctions et des classes qui facilitent le travail avec les fichiers CSV sans faille.

Comment lire les fichiers CSV à l'aide de Python

Le module CSV a la fonction CSV.Reader () pour la lecture des fichiers CSV. Il est utilisé avec des objets (y compris des objets de fichier) tels que ceux produits avec la fonction Open () In-construite de Python.

Étant donné un objet de fichier à partir d'un appel à ouvrir (), CSV.Reader () renvoie un objet de lecteur. L'objet du lecteur peut être utilisé pour itérer sur chaque ligne de données CSV, où les lignes sont renvoyées comme une liste de chaînes.

Prenons un exemple:

Employee Id,First Name,Gender,Start Date,Last Login Time,Salary,Bonus %,Senior Management,Team
1,Douglas,Male,8/6/1993,12:42 PM,,6.945,TRUE,Marketing
2,Thomas,Male,3/31/1996,6:53 AM,61933,4.17,,
3,Maria,Female,4/23/1993,11:17 AM,,11.858,FALSE,Finance
4,Jerry,Male,3/4/2005,1:00 PM,138705,9.34,,Finance

Voici la sortie du code ci-dessus:

<span>import csv
</span>
<span>with open('employees.csv', newline='') as file_obj:
</span>    reader_obj <span>= csv.reader(file_obj)
</span>    <span>for row in reader_obj:
</span>        <span>print(row)
</span>

À partir de l'extrait de premier code, le fichier employés.csv est ouvert, après quoi la fonction csv.reader () l'analyse et renvoie un objet de lecteur. Un simple pour la boucle est utilisé pour itérer sur l'objet lecteur, qui renvoie une liste de données de chaque ligne du fichier employés.csv, à partir du haut.

Comment écrire dans les fichiers CSV à l'aide de Python

En plus de lire les données des fichiers CSV, nous pouvons également écrire des données sur ces fichiers dans Python. La fonction CSV.Writer () nous permet d'écrire des données au format CSV. Après avoir ouvert le fichier en mode écriture, la fonction csv.writer () renvoie un objet d'écrivain, qui convertit les données fournies en chaînes délimitées sur l'objet de fichier fourni. L'objet écrivain dispose de la méthode writerow () pour écrire une ligne - un itérable de chaînes ou des nombres de valeurs séparées par des virgules par temps - tandis que la méthode writerrows () est utilisée pour plusieurs lignes à la fois. Les méthodes writerow () et writerrows () ne sont que deux options pour écrire des données dans un fichier CSV.

Tous les objets de liste utilisés dans l'extrait de code ci-dessus pourraient être regroupés en une liste 2D et transmis comme argument à la méthode writerrows () de l'objet écrivain pour atteindre le même résultat.

Une fois l'instruction avec exécution, un fichier CSV (produit.csv) est créé dans le répertoire de travail actuel contenant ces valeurs séparées par des virgules.

Voici un exemple:

<span>['Employee Id', 'First Name', 'Gender', 'Start Date', 'Last Login Time', 'Salary', 'Bonus %', 'Senior Management', 'Team']
</span><span>['1', 'Douglas', 'Male', '8/6/1993', '12:42 PM', '', '6.945', 'TRUE', 'Marketing']
</span><span>['2', 'Thomas', 'Male', '3/31/1996', '6:53 AM', '61933', '4.17', '', '']
</span><span>['3', 'Maria', 'Female', '4/23/1993', '11:17 AM', '', '11.858', 'FALSE', 'Finance']
</span><span>['4', 'Jerry', 'Male', '3/4/2005', '1:00 PM', '138705', '9.34', '', 'Finance']
</span><span>['5', 'Larry', 'Male', '1/24/1998', '4:47 PM', '101004', '1.389', 'TRUE', 'Client Services']
</span><span>...
</span>

Voici la sortie du code ci-dessus:

<span>import csv
</span>
<span>with open('products.csv', 'w', newline='') as file_obj:
</span>    writer_obj <span>= csv.writer(file_obj)
</span>    writer_obj<span>.writerow(['Product Name', 'Price', 'Quantity', 'SKU Number' ])
</span>    writer_obj<span>.writerow(['Rice', 80, 35, 'RI59023'])
</span>    writer_obj<span>.writerow(['Curry', 2, 200, 'CY13890'])
</span>    writer_obj<span>.writerow(['Milk', 9.5, 315, 'MK10204'])
</span>

Comment convertir CSV en JSON en utilisant Python

En effectuant des opérations d'E / S de fichiers, nous voulons peut-être convertir un fichier CSV au format JSON - qui est populaire pour la réception et la transmission de données entre un client et un serveur. Le module CSV fournit la classe CSV.Dictreader pour nous aider à y parvenir.

Les méthodes de classe CSV.Dictreader aident à convertir un fichier CSV donné en un dictionnaire Python avant d'appliquer la fonction JSON.Dump () du module JSON pour convertir le dictionnaire Python résultant en un fichier JSON. La classe csv.dictreader () prend un argument de nom de champ facultatif. Lorsque les noms de champ sont omis, les valeurs de la première ligne seront mappées au reste des données sous forme de noms de champ.

Jetons un coup d'œil à un exemple:

Product Name<span>,Price,Quantity,SKU Number
</span>Rice<span>,80,35,RI59023
</span>Curry<span>,2,200,CY13890
</span>Milk<span>,9.5,315,MK10204
</span>

Voici la sortie du code ci-dessus:

<span>import csv
</span><span>import json
</span>
my_dict <span>= {}
</span>
<span>with open('employees.csv', newline='') as file_obj:
</span>    reader_object <span>= csv.DictReader(file_obj)
</span>    <span>for row in reader_object:
</span>        key <span>= row['Employee Id']
</span>        my_dict<span>[key] = row
</span>
<span>with open('employee.json', 'w', encoding='utf-8') as file_obj:
</span>    json<span>.dump(my_dict, file_obj, indent=4)   
</span>

Pour convertir un fichier CSV en un équivalent JSON, nous avons appliqué les étapes suivantes:

  • a ouvert le fichier employés.csv en mode de lecture
  • a créé un dictionnaire Python à partir de l'objet de fichier renvoyé à l'aide de la classe CSV.Dictreader
  • a ouvert un fichier JSON en mode écriture, comme Employés.json (si aucun fichier de ce type avait existé, on aurait été créé)
  • a utilisé la fonction demp () du module json pour convertir le dictionnaire Python (my_dict) en fichier JSON

Comment convertir JSON en CSV en utilisant Python

Dans cette section, nous examinerons comment convertir les données d'un fichier JSON au format CSV. Pour y parvenir, nous utiliserons à la fois les modules Python CSV et JSON Python. La fonction JSON JSON.Load () du module aidera à convertir un fichier JSON en un dictionnaire Python, tandis que les méthodes de classe CSV.DictWiter CSV fichier.

Voici un exemple:

Employee Id,First Name,Gender,Start Date,Last Login Time,Salary,Bonus %,Senior Management,Team
1,Douglas,Male,8/6/1993,12:42 PM,,6.945,TRUE,Marketing
2,Thomas,Male,3/31/1996,6:53 AM,61933,4.17,,
3,Maria,Female,4/23/1993,11:17 AM,,11.858,FALSE,Finance
4,Jerry,Male,3/4/2005,1:00 PM,138705,9.34,,Finance

Pour convertir un fichier JSON en un équivalent CSV, nous avons appliqué les étapes suivantes:

  • a ouvert le fichier employés.json en mode lecture
  • a utilisé la fonction JSON.load () pour créer un dictionnaire Python PY_DICT
  • a ouvert un fichier CSV Employés_records.csv en mode écriture (si aucun fichier de ce type avait existé, on aurait été créé)
  • a créé un objet d'écrivain avec la classe CSV.DictWriter avec les arguments nécessaires
  • a utilisé les méthodes d'objets de l'écrivain pour cartographier les dictionnaires dans le nombre approprié de lignes

Conclusion

Les fichiers

CSV sont très populaires et souvent utilisés dans l'exportation et l'importation de feuilles de calcul et de bases de données. Ce format de fichier est utilisé très souvent par ceux qui travaillent avec des données. Cependant, bien que la programmation avec Python puisse être nécessaire d'utiliser rapidement les fichiers CSV, il est donc important d'apprendre à effectuer des opérations d'E / S de fichiers avec CSV.

Le module CSV de Python est très pratique pour travailler avec les fichiers CSV, car il fournit les fonctions et classes nécessaires pour ce type de tâches.

Il est important de noter également que nous devrons peut-être convertir des fichiers d'un format en un autre (CSV en JSON) comme le montre nos exemples ci-dessus.

Questions fréquemment posées (FAQ) sur les fichiers Python CSV

Comment puis-je gérer les grands fichiers CSV dans Python?

Gestion de gros fichiers CSV dans Python peut être un peu difficile en raison des contraintes de mémoire. Cependant, le module CSV intégré de Python fournit un moyen de lire et d'écrire des fichiers CSV dans des morceaux plus petits, ce qui permet de travailler avec de grands fichiers. Vous pouvez utiliser l'objet Reader dans une boucle pour lire un nombre spécifique de lignes à la fois. De cette façon, vous pouvez traiter un grand fichier en morceaux plus petits et plus gérables.

Comment puis-je écrire dans un fichier CSV dans Python?

L'écriture dans un fichier CSV dans Python est simple avec le Module CSV. Vous pouvez utiliser l'objet écrivain et sa méthode Writerow pour écrire une seule ligne, ou la méthode des écrivains pour écrire plusieurs lignes à la fois. N'oubliez pas d'ouvrir le fichier en mode écriture («W») avant de l'écrire.

Comment puis-je gérer les fichiers CSV avec différents délimiteurs dans Python?

Le module CSV de Python vous permet de spécifier le délimiteur lors de la lecture ou de l'écriture de fichiers CSV. Le lecteur et les objets d'écrivain prennent un paramètre Delimiter, que vous pouvez définir sur n'importe quel caractère que votre fichier CSV utilise comme délimiteur.

Comment puis-je gérer les fichiers CSV avec des en-têtes dans Python?

Si Votre fichier CSV comprend une ligne d'en-tête, vous pouvez utiliser l'objet DiCtreader dans le module CSV pour lire le fichier. Cet objet traite chaque ligne comme un dictionnaire, où les touches sont les noms de colonne de la ligne d'en-tête, et les valeurs sont les données de chaque ligne.

Comment puis-je gérer les fichiers CSV avec des champs cités dans Python?

Le module CSV de Python fournit les constantes Quote_minImal, Quote_ALL, QUOTE_NONNUMIER et QUOTE_NONE pour gérer les champs cités dans les fichiers CSV. Vous pouvez spécifier ces constantes comme paramètre de citation lors de la création d'un lecteur ou d'un objet d'écrivain.

Comment puis-je gérer les fichiers CSV avec des caractères spéciaux dans Python?

Si votre fichier CSV contient des caractères spéciaux, vous Peut les gérer en ouvrant le fichier en mode binaire et en utilisant le module Unicodecsv au lieu du module CSV intégré. Ce module fonctionne comme le module CSV, mais il prend en charge les caractères Unicode.

Comment puis-je gérer les fichiers CSV avec des valeurs manquantes dans Python?

Les valeurs manquantes dans les fichiers CSV peuvent être gérées à l'aide des pandas bibliothèque à Python. Vous pouvez lire le fichier CSV dans un DataFrame, puis utiliser la méthode Fillna pour remplir les valeurs manquantes avec une valeur spécifique ou une valeur calculée.

Comment puis-je convertir un fichier CSV en un format différent dans Python?

Python fournit plusieurs bibliothèques pour convertir les fichiers CSV en différents formats. Par exemple, vous pouvez utiliser la bibliothèque Pandas pour convertir un fichier CSV en fichier Excel, une base de données SQL ou un fichier JSON.

Comment puis-je trier un fichier CSV par une colonne spécifique dans Python?

Vous pouvez trier un fichier CSV par une colonne spécifique à l'aide de la bibliothèque Pandas dans Python. Après avoir lu le fichier CSV dans un DataFrame, vous pouvez utiliser la méthode SORT_VALUES pour trier le DataFrame par une ou plusieurs colonnes.

Comment puis-je filtrer les lignes dans un fichier CSV basé sur une condition dans Python?

Vous pouvez filtrer les lignes dans un fichier CSV basé sur une condition à l'aide de la bibliothèque Pandas dans Python. Après avoir lu le fichier CSV dans un dataframe, vous pouvez utiliser l'indexation booléenne pour filtrer le dataframe en fonction d'une condition.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn