Comment écrire des données dans un fichier CSV ligne par ligne avec Python : Guide complet

Python est un langage de programmation extrêmement performant pour le traitement des données, y compris la manipulation des fichiers CSV. Les fichiers CSV sont largement utilisés pour le stockage et le partage de données. Dans cet article, nous allons expliquer en détail comment écrire efficacement des données dans un fichier CSV ligne par ligne en utilisant Python, en incluant des exemples de code spécifiques et des cas d’utilisation. Que vous soyez débutant ou expert, vous trouverez des informations utiles tout au long de cet article, alors assurez-vous de le lire jusqu’à la fin.

Sommaire

Principes de base de la manipulation des fichiers CSV avec Python

Les fichiers CSV (Comma-Separated Values) sont un format simple et efficace pour stocker des données sous forme de tableau. Chaque ligne représente un enregistrement, et chaque colonne représente un champ de données. Python dispose d’un module standard appelé « csv » qui permet de manipuler facilement les fichiers CSV, ce qui facilite la lecture et l’écriture de données dans ce format.

Structure d’un fichier CSV

Un fichier CSV est composé de données textuelles séparées par des virgules, comme illustré ci-dessous :

Nom, Âge, Profession
Tarō, 30, Ingénieur
Hanako, 25, Designer

Utilisation du module csv de Python

En important le module « csv » de Python, il est facile de lire et d’écrire des fichiers CSV. Voici comment procéder à l’importation de base :

import csv

Comment écrire des données dans un fichier CSV

Pour écrire des données dans un fichier CSV avec Python, on utilise principalement la classe « csv.writer ». Cette classe permet d’écrire efficacement des données dans un fichier CSV.

Étapes de base pour écrire dans un fichier CSV

Tout d’abord, voyons les étapes de base pour écrire dans un fichier CSV. Suivez ces étapes :

  1. Ouvrir le fichier CSV
  2. Créer un objet csv.writer
  3. Utiliser la méthode writerow pour écrire les données
  4. Fermer le fichier

Ouvrir le fichier CSV

Pour ouvrir un fichier CSV, on utilise la fonction intégrée « open » de Python. Pour l’ouvrir en mode écriture, spécifiez « ‘w’ » :

with open('example.csv', mode='w', newline='') as file:
    writer = csv.writer(file)

Créer un objet csv.writer

En créant un objet csv.writer, vous êtes prêt à écrire des données dans le fichier CSV. Cet objet est créé en passant l’objet fichier en argument.

    writer = csv.writer(file)

Utiliser la méthode writerow pour écrire les données

Utilisez la méthode writerow pour écrire les données sous forme de liste, ligne par ligne. Voici un exemple :

    writer.writerow(['Nom', 'Âge', 'Profession'])
    writer.writerow(['Tarō', '30', 'Ingénieur'])
    writer.writerow(['Hanako', '25', 'Designer'])

Fermer le fichier

Après avoir terminé les opérations sur le fichier, il est essentiel de le fermer. En utilisant la syntaxe with, le fichier se fermera automatiquement.

with open('example.csv', mode='w', newline='') as file:
    writer = csv.writer(file)
    writer.writerow(['Nom', 'Âge', 'Profession'])
    writer.writerow(['Tarō', '30', 'Ingénieur'])
    writer.writerow(['Hanako', '25', 'Designer'])

Les différents modes d’écriture dans un fichier CSV

Lorsque vous écrivez des données dans un fichier CSV avec Python, il est important de choisir le mode d’écriture approprié. Les principaux modes sont « mode ajout » et « mode écrasement », et chacun doit être utilisé en fonction du cas d’utilisation.

Mode écrasement (‘w’)

Le mode écrasement est utilisé pour remplacer le contenu existant d’un fichier par un nouveau contenu. Lorsque le fichier est ouvert dans ce mode, les données existantes sont supprimées et seules les nouvelles données sont écrites.

with open('example.csv', mode='w', newline='') as file:
    writer = csv.writer(file)
    writer.writerow(['Nom', 'Âge', 'Profession'])
    writer.writerow(['Tarō', '30', 'Ingénieur'])

Mode ajout (‘a’)

Le mode ajout est utilisé pour ajouter de nouvelles données à un fichier existant. Lorsque le fichier est ouvert dans ce mode, les données existantes sont conservées et les nouvelles données sont ajoutées à la fin du fichier.

with open('example.csv', mode='a', newline='') as file:
    writer = csv.writer(file)
    writer.writerow(['Hanako', '25', 'Designer'])

Conseils pour le choix du mode

  • Le mode écrasement est utilisé lorsque vous souhaitez remplacer complètement le fichier existant par un nouveau jeu de données, par exemple pour mettre à jour un fichier avec les données les plus récentes chaque jour.
  • Le mode ajout est utilisé lorsque vous souhaitez conserver les données existantes tout en ajoutant de nouvelles informations, par exemple pour les fichiers journaux ou la collecte continue de données.

Exemple de code complet

Voici un exemple d’utilisation des modes écrasement et ajout :

import csv

# Écrire de nouvelles données en mode écrasement
with open('example.csv', mode='w', newline='') as file:
    writer = csv.writer(file)
    writer.writerow(['Nom', 'Âge', 'Profession'])
    writer.writerow(['Tarō', '30', 'Ingénieur'])

# Ajouter des données en mode ajout
with open('example.csv', mode='a', newline='') as file:
    writer = csv.writer(file)
    writer.writerow(['Hanako', '25', 'Designer'])

Lorsque ce code est exécuté, les nouvelles données seront écrasées dans le fichier example.csv, puis d’autres données seront ajoutées.

Exemples de code réels et leur explication

Nous allons maintenant présenter quelques exemples concrets de l’écriture de données dans un fichier CSV avec Python, en expliquant en détail leur fonctionnement. Cela vous aidera à approfondir votre compréhension de l’utilisation de base et avancée.

Exemple d’écriture basique

Commençons par un exemple simple d’écriture de données dans un fichier CSV. Cet exemple écrit des données de base dans un fichier CSV.

import csv

data = [
    ['Nom', 'Âge', 'Profession'],
    ['Tarō', '30', 'Ingénieur'],
    ['Hanako', '25', 'Designer']
]

with open('example.csv', mode='w', newline='') as file:
    writer = csv.writer(file)
    for row in data:
        writer.writerow(row)

Ce code fonctionne de la manière suivante :

  1. Le fichier CSV est ouvert en mode « w », ce qui crée un nouveau fichier ou écrase le fichier existant.
  2. Un objet csv.writer est créé.
  3. La méthode writerow est utilisée pour écrire les données sous forme de liste dans le fichier, ligne par ligne.

Exemple d’écriture avec un format dictionnaire

Ensuite, voyons un exemple d’écriture de données sous forme de dictionnaire dans un fichier CSV, ce qui permet d’utiliser les clés comme en-têtes.

import csv

data = [
    {'Nom': 'Tarō', 'Âge': '30', 'Profession': 'Ingénieur'},
    {'Nom': 'Hanako', 'Âge': '25', 'Profession': 'Designer'}
]

with open('example_dict.csv', mode='w', newline='') as file:
    fieldnames = ['Nom', 'Âge', 'Profession']
    writer = csv.DictWriter(file, fieldnames=fieldnames)

    writer.writeheader()
    for row in data:
        writer.writerow(row)

Points importants de ce code :

  1. Utilisation de DictWriter pour écrire des données au format dictionnaire dans le fichier CSV.
  2. Les noms de champs (fieldnames) sont spécifiés pour définir les en-têtes.
  3. La méthode writeheader est utilisée pour écrire la ligne d’en-tête.
  4. La méthode writerow est utilisée pour écrire les données sous forme de dictionnaire, ligne par ligne.

Exemple d’ajout de données

Voici un exemple d’ajout de données à un fichier CSV existant. Dans ce cas, le mode est réglé sur « a ».

import csv

additional_data = [
    ['Jirō', '28', 'Marketing'],
    ['Saburō', '35', 'Chef de projet']
]

with open('example.csv', mode='a', newline='') as file:
    writer = csv.writer(file)
    for row in additional_data:
        writer.writerow(row)

Points importants de ce code :

  1. Le fichier est ouvert en mode « a » pour conserver les données existantes tout en ajoutant de nouvelles données.
  2. Les nouvelles données sont ajoutées ligne par ligne.

Ces exemples permettent de comprendre les différentes méthodes d’écriture de données dans un fichier CSV avec Python, du niveau basique à avancé.

Exemples avancés : Écrire plusieurs données successivement

Dans les applications réelles, il est souvent nécessaire de traiter de grandes quantités de données et d’écrire les données successivement dans un fichier. Voici un exemple d’écriture de plusieurs données successivement dans un fichier CSV en utilisant Python.

Écriture de données dynamiques

Voici un exemple d’écriture de données générées dynamiquement dans un fichier CSV. Cette méthode est utile pour la collecte de données ou l’enregistrement de journaux.

import csv
import random
import time

# Fonction pour générer des données fictives
def generate_data():
    names = ['Tarō', 'Hanako', 'Jirō', 'Saburō']
    ages = range(20, 40)
    professions = ['Ingénieur', 'Designer', 'Marketing', 'Chef de projet']

    return {
        'Nom': random.choice(names),
        'Âge': random.choice(ages),
        'Profession': random.choice(professions)
    }

# Fonction pour écrire les données dans un fichier CSV
def write_data_to_csv(file_name, data):
    with open(file_name, mode='a', newline='') as file:
        fieldnames = ['Nom', 'Âge', 'Profession']
        writer = csv.DictWriter(file, fieldnames=fieldnames)

        # Écrire les en-têtes uniquement si le fichier est vide
        if file.tell() == 0:
            writer.writeheader()

        writer.writerow(data)

# Générer et écrire les données dans le fichier CSV
file_name = 'dynamic_data.csv'
for _ in range(10):  # Générer et écrire des données 10 fois
    data = generate_data()
    write_data_to_csv(file_name, data)
    time.sleep(1)  # Intervalle de 1 seconde pour chaque génération de données

Points clés de ce code :

  1. La fonction generate_data génère des données fictives.
  2. La fonction write_data_to_csv écrit les données dans un fichier CSV, en vérifiant si les en-têtes doivent être écrits.
  3. Les données sont générées et écrites dans le fichier CSV à un intervalle d’une seconde.

Résumé

Nous avons expliqué comment écrire des données dans un fichier CSV avec Python, des opérations de base aux exemples avancés, ainsi que les erreurs courantes et leurs solutions. Voici les points principaux :

  • Le module « csv » permet de manipuler facilement les fichiers CSV.
  • Choisissez le mode d’écriture (écrasement ou ajout) selon vos besoins.
  • Gérez les erreurs de manière appropriée pour rendre le programme robuste.
  • Appliquez ces connaissances à des tâches de traitement de données et de manipulation de fichiers dans Python.
Sommaire