Lire et manipuler un fichier csv avec Python [Fermé]

Signaler
-
 spyseb2004 -
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.

13 réponses

Messages postés
32840
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 539
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()
15
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
32840
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 539
Il est défini à la seconde ligne (fichier=open...)

Erreur de copier-coller ?
Messages postés
32840
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 539
je ne sais pas où trouver (valeur*math.pi)

Module math.
Je te conseille d'aller lire la documentation de Python.
Messages postés
32840
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 539
"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.
Messages postés
32840
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 539
Tu dois simplement ignorer la première ligne.
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.
Messages postés
32840
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 539
Sans ton programme et le fichier source, je ne peux pas t'aider.
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é
"ber" c'est l'intitulé de la première colonne. Donc, je dois éliminer les intitulés des colonnes?
Ok, merci cher ami pour votre patience avec moi.
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!
Oui, ç'as l'aire de marcher mais je ne sais pas où trouver (valeur*math.pi) pcq ce n'est pas affiché par Python?
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.