Posez votre question Signaler

Lire et manipuler un fichier csv avec Python

hassen62 - Dernière réponse le 19 nov. 2007 à 21:38
Salut tout le monde,
j'ai un fichier csv nommé "file.csv" (le séparateur ";")que j'ai mais dans C:\ProgramFiles. Ce fichier est composé de trois colonnes intitulées :Col1, Col2 et Col3.
Comment importer ce fichier et le lire avec Python(ma version 2.5). Maintenant, j'ai besoin d'extraire seulement la première colonne càd Col1 et faire l'opération pi*Col1.
Merci d'avance, Hassen 62.
Lire la suite 

Lire et manipuler un fichier csv avec Python »

13 réponses
Réponse
+3
moins plus
Avec le module CSV, c'est facile:

import csv, math

fichier = open('file.csv','rb')
fichiercsv = csv.reader(fichier, delimiter=';')

for ligne in fichiercsv:
    if ligne:
        valeur = float(ligne[0])
        print valeur*math.pi

fichier.close()
Ajouter un commentaire
Réponse
+0
moins plus
Il est défini à la seconde ligne (fichier=open...)

Erreur de copier-coller ?
Ajouter un commentaire
Réponse
+0
moins plus
je ne sais pas où trouver (valeur*math.pi)

Module math.
Je te conseille d'aller lire la documentation de Python.
Ajouter un commentaire
Réponse
+0
moins plus
Ok, j'ai tourné encore une fois le programme nommé(jirjir) j'ai obtenu le message suivant:

Traceback (most recent call last):
File "C:/Python25/jirjir", line 6, in <module>
valeur = float(ligne[0])
ValueError: invalid literal for float(): ber


NB: Dans le prog 'jirjir' je n'ai que copié les lignes que vous m'avez recommendé
Ajouter un commentaire
Réponse
+0
moins plus
"ber" est-il un nombre ?

Non, c'est pour cela qu'il te dit qu'il y a une erreur: Il n'arrive pas à convertir "ber" en nombre.
Ajouter un commentaire
Réponse
+0
moins plus
"ber" c'est l'intitulé de la première colonne. Donc, je dois éliminer les intitulés des colonnes?
Ajouter un commentaire
Réponse
+0
moins plus
Tu dois simplement ignorer la première ligne.
Ajouter un commentaire
Réponse
+0
moins plus
Ok, merci cher ami pour votre patience avec moi.
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour, j'aurais une question pour les pros du Python.

Voici ce que je fais:

>>>import csv;from matplotlib.pylab import*;title("test.csv");cr=csv.reader(open("test.csv","rb"))
>>>for row in cr:
plot([row[1]])
>>>show()

Le problème est que je ne suis pas capable insérer les valeurs d'une seule colonne dans excel et les faire afficher
dans un graphique. Il faudrait que je sois capable d'extraire toutes les valeurs d'une "row" et que toutes les valeurs
soit séparé d'une virgule pour que la fonction plot([]) fonctionne.

Pouvez-vous m'aider?

Merci!
Ajouter un commentaire
Réponse
-1
moins plus
Je vous remercie pour votre réponse, j'ai écrit les lignes que vous m'avez introduit mais j'ai obtenu ce message:

Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
fichiercsv = csv.reader(fichier, delimiter=';')
NameError: name 'fichier' is not defined

J'ai remarqué aussi qu'il n'a pas accepté la syntaxe fichier.close.
Ajouter un commentaire
Réponse
-1
moins plus
Oui, ç'as l'aire de marcher mais je ne sais pas où trouver (valeur*math.pi) pcq ce n'est pas affiché par Python?
Ajouter un commentaire
Réponse
-1
moins plus
J'ai lu les documents relatives à librairie math que j'ai, mais je ne sais pas pourquoi l'output que je désire (pi* Col1) ne s'affiche pas à l'écran.
D'après vous où réside le problème.
Désolé d'insister mais vraiment j'ai besoin de ça. Merci d'avance.
Ajouter un commentaire
Réponse
-1
moins plus
Sans ton programme et le fichier source, je ne peux pas t'aider.
Ajouter un commentaire
Ce document intitulé « lire et manipuler un fichier csv avec Python » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?