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 :

[xlrd][csv] Problème de conversion


Sujet :

Python

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2012
    Messages : 39
    Par défaut [xlrd][csv] Problème de conversion
    Bonjour, j'ai encore un soucis dans l'utilisation de xlrd. Incompréhensible pour moi....
    Je souhaite réaliser la conversion d'un fichier XL au format CSV, simplement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    from xlrd import *
    import csv, StringIO, cStringIO
    fstr = cStringIO.StringIO()
     
    #
     
    b = open_workbook('fichierexcel1.xls')
    s=b.sheet_by_index(0)
    bc = open('fichierexcel1.csv','w')
    bcw = csv.writer(bc,csv.excel)
     
    for row in range(s.nrows):
        this_row = []
        for col in range(s.ncols):
            this_row.append(s.cell_value(row,col))
        bcw.writerow(this_row)
    Ca marche super bien sauf que il "oublie" quelques valeurs à la fin. Même pire, il écrit seulement une partie de this_row ! ???

    Du coup, j'ai cherché s'il n'y avait pas de fautes dans mon tableur Excel mais RAS.

    J'ai ensuite supprimé dans mon tableur excel de départ les 3 premières lignes, juste pour voir si cela changeait des choses. Là, il écrit quelques caractères en plus de this_row mais il omet encore les valeurs suivantes.

    En fait c'est comme si le CSV était limité en nombre de caractère. Quand je fait un print de chaque ligne, il m'affiche bien TOUTES les lignes et en omets aucunes...


    Format du tableau : 52000*28.
    Les trois premières lignes sont vides.

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2012
    Messages : 39
    Par défaut
    Autant pour moi j'avais juste oublié le close() :

    Bon, voilà toujours penser à fermer ses portes avant de partir...

  3. #3
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Je ne sais pas si ça suffira, mais les lecture/écriture de fichiers csv se font en binaire: ils doivent donc être ouverts 'rb' ou 'wb'.

    A essayer!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème de conversion de dimension dans BUSINESS OBJECT
    Par greatmaster1971 dans le forum Deski
    Réponses: 4
    Dernier message: 28/04/2014, 13h15
  2. - [CAST ou CONVERT] Problème de conversion de date
    Par Boublou dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 06/07/2004, 14h31
  3. Problème de conversion 3DS->.X
    Par JBernn dans le forum DirectX
    Réponses: 5
    Dernier message: 08/04/2004, 19h08
  4. Problème de conversion unicode
    Par djmalo dans le forum C
    Réponses: 5
    Dernier message: 09/03/2004, 11h48
  5. Réponses: 11
    Dernier message: 02/09/2003, 14h20

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