teaching:progappchim:csv

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
teaching:progappchim:csv [2015/01/14 15:29] villersdteaching:progappchim:csv [2021/02/11 10:19] (Version actuelle) villersd
Ligne 1: Ligne 1:
 ====== Lire et écrire des fichiers de données csv  ====== ====== Lire et écrire des fichiers de données csv  ======
 +
 +<note tip>Dans de nombreuses situations, il est préférable d'ouvrir les fichiers de type .csv via la librairie [[teaching:progappchim:pandas|pandas]] !</note>
 +
 Les [[http://fr.wikipedia.org/wiki/Comma-separated_values|fichiers csv]] sont des fichiers de données séparées par des virgules (ou point-virgules), pour "comma separated values". Comme ceci : Les [[http://fr.wikipedia.org/wiki/Comma-separated_values|fichiers csv]] sont des fichiers de données séparées par des virgules (ou point-virgules), pour "comma separated values". Comme ceci :
 <code> <code>
Ligne 14: Ligne 17:
 La [[http://docs.python.org/2/library/csv.html|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) : La [[http://docs.python.org/2/library/csv.html|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-01.py> +<code python exemple_simple-csv-02.py> 
-#!/usr/bin/python+#!/usr/bin/env python
 # -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
-""" pour la documentation sur le module csv (comma separated values+""" pour la documentation sur le module csv (comma separated variable
- de python, voir à partir de https://docs.python.org/3/library/csv.html+ de python, voir à partir de http://docs.python.org/lib/csv-examples.html
  Autres refs : http://www.linuxjournal.com/content/handling-csv-files-python  Autres refs : http://www.linuxjournal.com/content/handling-csv-files-python
  http://code.activestate.com/recipes/577423-convert-csv-to-xml/  http://code.activestate.com/recipes/577423-convert-csv-to-xml/
 """ """
  
-import csv   # module néssaire "comma separated values"+import csv   # module nécessaire "comma separated values"
  
 # fichier d'entrée # fichier d'entrée
-ifile=open("Classeur1.csv", "rb"+with open("Classeur1.csv", "rb"as ifile: 
-reader = csv.reader(ifile, delimiter=';'+    reader = csv.reader(ifile, delimiter=';'
-# Classeur1.csv est un simple fichier texte, comme celui qui suit par exemple : +    # Classeur1.csv est un simple fichier texte, comme celui qui suit par exemple : 
-# 1;0.1;3 +    # 1;0.1;3 
-# 2;0.3;5 +    # 2;0.3;5 
-# 3;0.5;7 +    # 3;0.5;7 
-# 4;0.6;11 +    # 4;0.6;11 
-# 5;0.9;21 +    # 5;0.9;21 
-# 6;1.5;39+    # 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 # fichier  de sortie
-ofile=open("Classeur-out.csv","wb"+with open("Classeur-out.csv","wb"as ofile: 
-writer = csv.writer(ofile, delimiter=';') +    writer = csv.writer(ofile, delimiter=';'
- +    writer.writerows(rows) 
-rows=[]  # initialisation d'une liste qui contiendra les lignes à écrire +</code>
-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 +
-writer.writerows(rows+
-ifile.close() +
-ofile.close(+
-</sxh>+
  
 <note tip>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" : <note tip>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" :
Ligne 59: Ligne 58:
  
 //Cf.// la page [[http://docs.python.org/2/library/csv.html#dialects-and-formatting-parameters]]. //Cf.// la page [[http://docs.python.org/2/library/csv.html#dialects-and-formatting-parameters]].
- 
 </note> </note>
 +
 +===== Références =====
 +  * [[https://docs.python.org/2/library/csv.html|documentation officielle du module csv]]
 +  * [[https://medium.com/casual-inference/the-most-time-efficient-ways-to-import-csv-data-in-python-cc159b44063d|The most (time) efficient ways to import CSV data in Python]]
 +  * [[https://code.i-harness.com/fr/docs/python~3.6/library/csv|csv - Lecture et écriture de fichiers CSV]]
 +  * + autres formats : [[https://towardsdatascience.com/importing-data-in-python-f6602add57b7|Importing Data in Python - Little summary on different ways to import different data]]
  • teaching/progappchim/csv.1421245740.txt.gz
  • Dernière modification : 2015/01/14 15:29
  • de villersd