Rechercher : dans
Par :

Lire et manipuler un fichier csv avec Python

Dernière réponse le 19 nov 2007 à 21:38:46 hassen62, le 28 sep 2007 à 03:50:07 
 Signaler ce message aux modérateurs

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.

Configuration: Windows XP
Internet Explorer 6.0

Meilleures réponses pour « lire et manipuler un fichier csv avec Python » dans :
[Python] Lire et écrire des fichiers CSV Voir LIRE ET ÉCRIRE DES FICHIERS CSV Python www.python.org, dans sa version 2.4 supporte de facto le format CSV (comma-separated values: valeurs séparées par des virgules). La Library Reference est certes très explicative à ce sujet, mais uniquement...
Fichier CSV Voir Format CSV Un fichier CSV est un fichier tableur, contenant des données sur chaque ligne séparés par un caractère de séparation (généralement une virgule ou un point-virgule). Comment lire un fichier CSV ? Il peut être lu avec un tableur tel que...
Comment lire un fichier ligne par ligne VoirComment lire un fichier ligne par ligne Préambule Boucle while Syntaxe Exemple Astuces Bonus Boucle for Syntaxe Préambule Une des erreurs les plus communes dans l'apprentissage des scripts "bash" sous GNU/LInux pour lire un fichier...
Excel - Convertir fichier(s) CSV / XLS VoirComme dit dans le titre, cette application convertit des fichiers CSV en fichiers XLS N’est pas nécessaire pour Excel 2007, ce dernier faisant la conversion automatiquement La conversion n’ayant pas de mise en forme, en cas de modification...
Lire un fichier en .rbs VoirOn peut rencontrer parfois des fichiers en .rbs, issus d'un enregistrement ou un autre. La solution la plus simple pour lire ces fichiers est tout bêtement de remplacer l'extension .rbs par .mp3 Si vous ne voyez pas l'extension du fichier, faites...

1

sebsauvage, le 28 sep 2007 à 10:16:01

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()

Répondre à sebsauvage

2

hassen62, le 29 sep 2007 à 02:33:06

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.

Répondre à hassen62

3

sebsauvage, le 29 sep 2007 à 22:46:22

Il est défini à la seconde ligne (fichier=open...)

Erreur de copier-coller ?

Répondre à sebsauvage

4

hassen62, le 30 sep 2007 à 00:56:58

Oui, ç'as l'aire de marcher mais je ne sais pas où trouver (valeur*math.pi) pcq ce n'est pas affiché par Python?

Répondre à hassen62

5

sebsauvage, le 30 sep 2007 à 15:00:56

je ne sais pas où trouver (valeur*math.pi)

Module math.
Je te conseille d'aller lire la documentation de Python.

Répondre à sebsauvage

6

hassen62, le 1 oct 2007 à 01:38:47

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.

Répondre à hassen62

7

sebsauvage, le 1 oct 2007 à 22:40:58

Sans ton programme et le fichier source, je ne peux pas t'aider.

Répondre à sebsauvage

8

hassen62, le 3 oct 2007 à 01:07:26

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é

Répondre à hassen62

9

sebsauvage, le 3 oct 2007 à 09:03:01
  • +1

"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.

Répondre à sebsauvage

10

hassen62, le 3 oct 2007 à 23:49:43

"ber" c'est l'intitulé de la première colonne. Donc, je dois éliminer les intitulés des colonnes?

Répondre à hassen62

11

sebsauvage, le 4 oct 2007 à 11:12:17

Tu dois simplement ignorer la première ligne.

Répondre à sebsauvage

12

hassen62, le 5 oct 2007 à 00:52:05

Ok, merci cher ami pour votre patience avec moi.

Répondre à hassen62

13

 spyseb2004, le 19 nov 2007 à 21:38:46
  • +1

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!

Répondre à spyseb2004
Collection CommentÇaMarche.net