IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

[CODE] Python 3.2 : lecture d'un fichier .csv


Sujet :

Python

  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    2
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 2
    Par d�faut [CODE] Python 3.2 : lecture d'un fichier .csv
    Bonjour � tous !

    Je cherche d�sesp�r�ment � r�soudre un probl�me que je ne rencontre que sur la version 3.2 de python, puisque j'ai r�ussi avec la version 2.7.
    Je cherche en fait � importer des donn�es financi�res depuis Yahoo finance, sous forme de fichier .csv pour les traiter ensuite avec python. Mais je n'arrive pas � ouvrir le fichier .csv correctement, une histoire de code ASCII, utf-8, mais je n'ai pas r�ussi � en savoir plus malgr� Google et la doc Python... :/

    Voici mon code :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    url = "http://ichart.finance.yahoo.com/table.csv?s=BNP.PA&d=5&e=26&f=2012&g=d&a=0&b=1&c=2012&ignore=.csv"#adresse correcte
     
    def Write_url(code,nom,url):
        file = urllib.request.urlopen(url)
        reader = csv.DictReader(codecs.EncodedFile(file, 'ASCII'))         #Je pense avoir compris que c'est ici que ça coince...
        for row  in reader:
            print(row)
            cursor.execute("insert into "+str(nom)+" values (:Date, :Open, :High, :Low, :Close, :Volume);", row)
    Et le message d'erreur :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    Write_url(code,nom,url)
        File "C:\Yahoo Finance fi.py", line 87, in Write_url
            for row in reader:
        File "C:\Python32\lib\csv.py", line 109, in __next__
            self.fieldnames
        File "C:\Python32\lib\csv.py", line 96, in fieldnames
            self._fieldnames = next(self.reader)
     csv.Error: iterator should return strings, not bytes (did you open the file in text mode?)
    Je ne comprends pas... Sur la version 2.7 il suffisait de faire urllib.urlopen(url) puis csv.Dictreader() et �a marchait tout seul, mais l� Python demande une manip en plus et je ne vois pas laquelle.

    Merci pour votre aide,
    Bonne soir�e !

  2. #2
    Expert confirm�

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par d�faut
    Salut,

    Pour ton probl�me, tu es victime, comme beaucoup, du changement sur les string avec Python3.

    Si tu ouvres ton fichier avec l'argument 'b' �a change quelque chose ?

    Comme tu le charge sur le net, enregistre le d'abord.

  3. #3
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    2
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 2
    Par d�faut
    Merci de ta r�ponse. Cependant, quelqu'un a su m'aider entre temps.
    Voici sa r�ponse :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    import codecs
    import csv
    import urllib.request
     
    url = 'http://ichart.finance.yahoo.com/table.csv?s=BNP.PA&d=5&e=26&f=2012&g=d&a=0&b=1&c=2012&ignore=.csv'
     
    f = urllib.request.urlopen(url)
    decode = codecs.getreader('utf-8')
    reader = csv.DictReader(decode(f))
    for row in reader:
        print(row)
    Ca a march� pour moi.
    Merci de votre aide, je n'h�siterai pas � revenir en cas de souci.

    Bonne soir�e.

Discussions similaires

  1. [PYTHON/FORTRAN ( f2py )] Lecture ecriture de fichier
    Par squallmrs dans le forum Interfa�age autre langage
    R�ponses: 7
    Dernier message: 28/06/2012, 08h48
  2. R�ponses: 2
    Dernier message: 24/01/2008, 13h48
  3. R�ponses: 3
    Dernier message: 03/01/2008, 12h14
  4. pb de lecture dans un fichier CSV
    Par MayOL69bg dans le forum C#
    R�ponses: 3
    Dernier message: 23/05/2007, 14h21
  5. Linges saut�es dans "lecture" d'un fichier .csv
    Par Mymi dans le forum VB 6 et ant�rieur
    R�ponses: 5
    Dernier message: 10/08/2006, 20h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo