Nov 24, 2024

Wiki

Python

Aide

edit SideBar

Search

Csv


Présentation

Le module csv permet de manipuler les fichiers du même nom (comma-separated files). Rappelons que...

  • Ces derniers servent à exporter, dans un fichier texte, les données des tableurs et des bases de données, ces valeurs étant alors, la plupart du temps, séparées par des virgules.
  • Il n'existe pas vraiment de standard csv, juste des dialectes (Excel, OpenOffice Calc) plus ou moins compatibles entre eux.

Lecture des données

On peut procéder ainsi...

  >>> import csv
  >>> f = open('toto.csv', 'rt')
  >>> try:
  ...     reader = csv.reader(f)
  ...     for ligne in reader:
  ...         print ligne
  ... finaly:
  ...     f.close()
  ...

La première ligne du code ci-dessus est constituée des noms des colonnes de la feuille de calcul. La iième ligne est une liste des colonnes de la iième ligne de l'objet csv. Elle est, par défaut, constituée de chaînes de caractères.

La lecture peut se faire sur tout itérable, et des options peuvent être passées pour spécifier comment lire le csv.

Écriture

On procède comme ci-dessus pour écrire dans un fichier csv : on instancie un objet writer, et on utilise la méthode writerow() pour écrire une ligne.

  >>> import csv
  >>> f = open('toto.csv', 'wt')
  >>> writer = csv.writer(f)
  >>> writer.writerow(('col1', 'col2', 'col3'))
  >>> writer.writerow((1, '2', 'abc'))
  >>> f.close()

Si besoin est, on peut exiger à ce que les chaînes de caractères apparaissent entre guillemets dans le csv, ainsi :

  >>> writer = csv.writer(f, quoting = csv.QUOTE_NONNUMERIC)

Les autres options possibles, pour l'inclusion de ces guillemets, sont QUOTE_ALL, et QUOTE_NONE, dont l'explication est immédiate.

Utilisation de dictionnaires

Les dictionnaires peuvent être utilisés pour contenir les données d'un fichier csv. Les clés du dictionnaire correspondent alors aux éléments contenus dans la première ligne du fichier csv.

Pour procéder ainsi, il suffit de remplacer :

  • csv.reader par csv.DictReader,
  • csv.writer par csv.DictWriter.

Page Actions

Recent Changes

Group & Page

Back Links