teaching:progappchim:csv

Lire et écrire des fichiers de données csv

Dans de nombreuses situations, il est préférable d'ouvrir les fichiers de type .csv via la librairie pandasplugin-autotooltip__default plugin-autotooltip_bigPandas

Module pour l'analyse de données, pouvant se substituer à l'utilisation d'un tableur. Une différence fondamentale de la librairie pandas avec NumPy, c'est que les tableaux NumPy (NumPy arrays) ont le même type (dtype) pour le tableau entier, tandis que les tableaux pandas (pandas DataFrames) sont caractérisés par un type unique (dtype) par colonne.$X$$x$$P(x)$$X$$x$$x_1, x_2, x_3, \ldots$$X$$P(x_i)$$X$$x$$P(x)$$x$$x+dx$$P(x)$$x$$P(x) dx$$P(x) dx = P(x \le X < x+dx)$$P(x_i) \ge 0$$x_i$$P(…
!

Les fichiers csv sont des fichiers de données séparées par des virgules (ou point-virgules), pour “comma separated values”. Comme ceci :

1;0.1;3
2;0.3;5
3;0.5;7
4;0.6;11
5;0.9;21
6;1.5;39

Ils peuvent être facilement importés ou exportés de tableurs ou logiciels de graphiques scientifiques.

La librairie csv facilite la lecture et l'écriture de fichiers au format csv. Voici un programme effectuant une lecture d'un fichier csv, suivie d'une écriture (souvent bien sûr on n'utilisera qu'une seule de ces possibilités) :

<sxh python; title : exemple_simple-csv-02.py> #!/usr/bin/env python # -*- coding: utf-8 -*- “”“ pour la documentation sur le module csv (comma separated variable) de python, voir à partir de http://docs.python.org/lib/csv-examples.html Autres refs : http://www.linuxjournal.com/content/handling-csv-files-python http://code.activestate.com/recipes/577423-convert-csv-to-xml/ ”“”

import csv # module nécessaire “comma separated values”

# fichier d'entrée with open(“Classeur1.csv”, “rb”) as ifile:

  reader = csv.reader(ifile, delimiter=';')
  # Classeur1.csv est un simple fichier texte, comme celui qui suit par exemple :
  # 1;0.1;3
  # 2;0.3;5
  # 3;0.5;7
  # 4;0.6;11
  # 5;0.9;21
  # 6;1.5;39
  rows=[]  # initialisation d'une liste qui contiendra les lignes à écrire
  for row in reader:  # on parcourt les lignes successives du fichier d'entrée
      print row   # facultatif : pour visualiser ces lignes
      rows.append(row)   # ajout à la liste de sortie
      for chaine in row:   # traitement des lignes
          nombre=float(chaine)   # on peut effectuer ici un calcul sur nombre...
          print float(nombre)     # ...ou simplement le visualiser
  print rows   # visualisation de la liste complète avant création du fichier de sortie

# fichier de sortie with open(“Classeur-out.csv”,“wb”) as ofile:

  writer = csv.writer(ofile, delimiter=';')
  writer.writerows(rows)

</sxh>

Pour satisfaire les contraintes d'un tableur, il est important de vérifier le séparateur utilisé , ainsi que l'usage ou non de “guillemets” :
  • delimiter = ' '
  • quotechar = '“'

Cf. la page http://docs.python.org/2/library/csv.html#dialects-and-formatting-parameters.

Ce site web utilise des cookies pour analyser le trafic de visites. En restant sur ce site, vous acceptez le stockage de cookies sur votre ordinateur. En savoir plus
  • teaching/progappchim/csv.txt
  • Dernière modification: 2019/05/09 11:20
  • de villersd