Maison  >  Article  >  développement back-end  >  Comment ajouter une nouvelle colonne à un fichier CSV en préservant les valeurs existantes ?

Comment ajouter une nouvelle colonne à un fichier CSV en préservant les valeurs existantes ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-21 21:12:02302parcourir

How to Add a New Column to a CSV File Preserving Existing Values?

Ajout d'une nouvelle colonne à un fichier CSV

Cet article aborde le problème de l'ajout d'une nouvelle colonne à plusieurs fichiers CSV, existant dans un format avec deux colonnes existantes intitulées « Nom » et « Code ». Le résultat souhaité consiste à ajouter une troisième colonne nommée "Berry" et à remplir ses valeurs avec les valeurs "Nom".

Un script Python initial utilisant la bibliothèque csv a tenté d'ajouter une valeur "Berry" à chaque ligne, mais j'ai rencontré une erreur où seule la nouvelle colonne était remplie avec les valeurs « Berry ».

La solution

Le code recommandé présenté dans la section de réponse fournit une solution complète :

  • Lisez la première ligne du fichier CSV d'entrée et ajoutez-y l'en-tête « berry ».
  • Parcourez les lignes restantes et ajoutez la première valeur (le nom) à chacune rangée.
  • Écrivez toutes les lignes modifiées dans le fichier CSV de sortie.

Implémentation

Voici un script Python révisé et amélioré basé sur le solution fournie :

<code class="python">import csv

with open('input.csv', 'r') as infile, open('output.csv', 'w') as outfile:
    reader = csv.reader(infile)
    header = next(reader)
    header.append('Berry')
    writer = csv.writer(outfile)
    writer.writerow(header)

    for row in reader:
        row.append(row[0])
        writer.writerow(row)</code>

Ce script ajoute avec succès la nouvelle colonne « Berry » à chaque ligne, remplie avec les valeurs « Nom » correspondantes.

Considérations supplémentaires

  • Sachez que le terminateur de ligne par défaut dans la bibliothèque csv de Python est « rn », ce qui peut provoquer un double espacement dans les fichiers de sortie. Pour spécifier un terminateur de ligne différent, utilisez le paramètre lineterminator lors de l'écriture du fichier CSV.
  • Envisagez d'utiliser une liste pour stocker toutes les lignes modifiées et écrivez-les en une seule opération avec writerows. Cette approche peut être plus efficace pour les fichiers volumineux.
  • L'instruction with peut être utilisée sur plusieurs fichiers sur une seule ligne, comme le montre l'exemple suivant :

    <code class="python">with open('input.csv', 'r') as infile, open('output.csv', 'w') as outfile:
      # file operations</code>

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